jquery
2016-07-08 77 views 0 likes 
0

我有此代碼並正常工作,但是當我清除文本字段複選框仍然檢查我該怎麼辦?複選框禁用當文本框中的金額超過

<form name="form1"> 
    <div class="controlset-pad"> 
     <input type="checkbox" name="others" onclick="enable_text(this.checked)" class="medium" disabled='disabled'/> 
    </div> 
    <input type="checkbox" name="others" onclick="enable_text(this.checked)" class="medium" disabled='disabled'/> 
    </div> 


     $('input[name=other_name]').keyup(function(){ 
      if (this.value.length > 0) { 
       $('input[name="others"]').prop('disabled', false) 
      } else { 
       $('input[name="others"]').prop('disabled', true)  
      } 
     }) 

http://jsfiddle.net/H8VPY/47/

+0

建議增加與KEYUP以及其他活動佔鼠標事件等。 – Iceman

回答

1

更改您的腳本如下。它只是在禁用控件之前取消選中。禁用複選框取消選中前:

$('input[name=other_name]').keyup(function(){ 
    if (this.value.length > 0) { 
     $('input[name="others"]').prop('disabled', false) 
    } else { 
     $('input[name="others"]').attr('checked', false); 
     $('input[name="others"]').prop('disabled', true)  
    } 
}) 
0

添加更改事件以及鼠標基礎的編輯,例如點擊右鍵>剪切等

注意。

$('input[name=other_name]').bind('keyup change', function() { 
 
    if (this.value.length > 0) { 
 
    $('input[name="others"]').prop('disabled', false) 
 
    } else { 
 
    $('input[name="others"]').attr('checked', false); 
 
    $('input[name="others"]').prop('disabled', true) 
 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form name="form1"> 
 
    <div class="controlset-pad"> 
 
    <input type="checkbox" name="others" onclick="enable_text(this.checked)" class="medium" disabled='disabled' /> 
 
    </div> 
 

 
    <div class="field4"> 
 
    <label>Name on credit card if different from above</label> 
 
    <input type="text" name="other_name" class="medium" /> 
 
    </div> 
 
</form>

相關問題