2014-08-29 67 views
0

如何在用户选择要运送时启用文本区域?当从<select>中选择值时启用文本区域

我有这些代码。

<script> 
    function my_func(selectValue){ 

     if(selectValue=="To Be Shipped") 
     {  
       document.getElementById("trackingNo").disabled="false"; 
     } 
     } 
</script> 

这是我的表单。

<form action="update_status.php?serial=<?php echo $_GET['serial']?>" method="post"> 
        <fieldset> 
        <h4>Edit Order Status</h4><br> 
        <div id=""> 
         <select name="order_status" onchange="my_func(this.value)"> 
          <option value="On Process">On Process</option> 
          <option value="Ready for Pickup">Ready for Pickup</option> 
          <option value="To Be Shipped">To Be Shipped</option> 
         </select>     
         <label>Tracking Number</label> 
         <input type="text" id="trackingNo" placeholder="Enter Tracking Number" name="tracking_no" disabled>      
         <button type="submit" class="btn">Submit</button> 
        </div> 


        </fieldset> 
       </form> 

我该如何解决我的代码?

回答

0

尝试使用false作为布尔值而不是字符串。

document.getElementById("trackingNo").disabled = false; 
1

您设置假的字符串应该是这样

document.getElementById("trackingNo").disabled=false; 

一个布尔值,所以,你的完整功能应该像

function my_func(selectValue){ 

    if(selectValue=="To Be Shipped") 
    {  
      document.getElementById("trackingNo").disabled=false; 
    } 
} 

有一个替代解决方案通过@Ahmed的建议使用removeAttribute函数,使语法看起来像

document.getElementById("trackingNo").removeAttribute("disabled"); 
+0

你也可以的removeAttribute'(“禁用”)' – Ahmed 2014-08-29 21:30:05

0

看看这个:JSFiddle.net/siva_hari/9wf5k804

function my_func(selectValue){ 
     if(selectValue=="To Be Shipped") 
     {  $("#trackingNo").removeAttr('disabled'); 
     } 
    else{ 
     $('#trackingNo').attr('disabled','disabled'); 
    } 
} 
+1

OP并没有要求一个jQuery的解决方案,否则标签将是他们 – V31 2014-08-29 21:38:37

+0

更新只使用JavaScript的解决方案。 – Siva 2014-08-30 01:13:09