2013-01-03 129 views
0

我試圖用這個如何填充多個文本框後自動取消選中複選框?

<input type="text" name="commentID" id="commentID" onkeyup="userTyped('skipID', this)"/> 
<input type="checkbox" name="skipID" value="N" id="skipID" checked="checked" /> 

和JavaScript

function userTyped(commen, e){ 
if(e.value.length > 0){ 
document.getElementById(commen).checked=false; 
}else{ 
document.getElementById(commen).checked=true; 
}}​ 

它的工作原理上的jsfiddle,"EXAMPLE"但我似乎無法使它在Dreamweaver中工作,且僅當我用一個文本框,我希望複選框只在三個文本框填充後才能自動取消選中。

+0

你使用一個JavaScript庫? –

+0

@ŠimeVidas我不知道應該使用哪個庫。 – user1852728

+0

不適用於jsFiddle。你什麼意思,它不能在DW中工作?你的意思是DW中的實時視圖嗎? – jtheman

回答

0

這裏http://jsfiddle.net/MAVLy/7/是一個使用jQuery和三個文本框重寫的函數。爲了便於閱讀,我將文本框的長度放在變量中,但可以省略。

HTML:

<input type="text" name="textbox1" id="textbox1" class="enable" /> 
<input type="text" name="textbox2" id="textbox2" class="enable" /> 
<input type="text" name="textbox3" id="textbox3" class="enable" /> 
<input type="checkbox" name="skipID" value="N" id="skipID" checked="checked" /> 

JQUERY:

$(function(){ 
    $('input.enable').keyup(function(){ 
    var t1 = $('#textbox1').val().length; 
    var t2 = $('#textbox2').val().length; 
    var t3 = $('#textbox3').val().length; 
    if (t1==0 || t2==0 || t3==0) $('#skipID').attr('checked', true); 
    else $('#skipID').attr('checked', false); 
    });   
}); 

替代解決方案。這一個適用於類enable

$(function(){ 
    $('input.enable').keyup(function(){ 
    var checked = false; 
    $('input.enable').each(function(){ 
     if ($(this).val().length == 0) checked = true; 
    }); 
    $('#skipID').attr('checked', checked); 
    });   
}); 

的文本框的數量沒有限制另一個的jsfiddle:http://jsfiddle.net/MAVLy/8/

+0

中工作謝謝,但是如果我想只在3文本框填充後取消選中複選框,該怎麼辦? – user1852728

+0

在答案中看到我的編輯。 – jtheman

+0

這些解決方案實際上工作。你可以考慮將它標記爲建議的答案或至少有幫助! – jtheman