2012-03-06 88 views
1

任何人都可以給我一個基本的示例,說明當取消選中某個複選框時,如何清除特定的表單輸入(每個都有自己的唯一ID)?我嘗試了一些解決方案,但似乎無法可靠地實現這一功能。我只需要在盒子沒有選中時纔會發生這種情況,這似乎給我帶來了問題。當取消選中複選框時清除特定的表單元素

+0

哪一部分給你的麻煩? – Jivings 2012-03-06 15:03:08

+0

向我們展示一些代碼。什麼不起作用? – MetalFrog 2012-03-06 15:07:13

回答

2

一個粗略的例子可能是......

<input type='checkbox' id='clear_text' /> 
<input type='text' id='text_box' value='Contents' /> 
<script> 
$(function(){ 
    $("#clear_text").click(function(){ 
     if(!$(this).is(":checked")){ //checks if the checkbox/this is selected or not 
      $("#text_box").val(""); //empty the input value 
     } else { } //nothing 
    }); 
}); 
</script> 
+1

'checked'狀態改變後,'click'(和'change',這可能是更好的選擇)事件觸發;所以「如果它被選中,那麼我們知道點擊將'取消選中'」是不正確的。另外,'this.checked'工作得很好 - 不需要'$(this).is(':checked')'。 – 2012-03-06 15:11:34

+0

是的,我認爲這是我的原始代碼,我很快就編輯了它。我有點像$(this).is(「:checked」)語法。它很好地閱讀:) – solarise 2012-03-06 15:22:59

+0

雖然喜歡語法並不意味着它不那麼不必要。你最終編寫更多的代碼 - 創建一個對象並執行函數調用 - 獲得零增益。 – 2012-03-06 15:26:42

1

在複選框的onClick()中,調查複選框的值,然後執行您希望的任何操作,包括清除表單。這是否符合您的需求?

1

很簡單的例子,讓你開始。使用jQuery 1.7.1。 http://jsfiddle.net/fPKX8/

HTML:

<input id="in1" name="in1" value="pizza" /><br /> 
<input id="in2" name="in2" value="chips" /><br /> 
<input id="in3" name="in3" value="beer" /><br /> 

<input id="check1" name="check1" type="checkbox" /> 

的jQuery:

$('#check1').on('click', function() { 
    if (!$(this).is(':checked')) { 
     $('#in1, #in2').val(''); 
    } 
}); 
1
​$(document).ready(function(){ 
    $('#chk').live('change',function(){ 
    if(!$(this).is(':checked')) 
     $('input').val('');    
    }); 
})​;​ 

這裏是工作提琴JSFiddle

+0

我不得不與另一個解決方案發布,因爲這與其他一些js與#chk進行衝突。但是,開箱即可按照預期工作。感謝您的時間! – 2012-03-06 16:25:29

相關問題