2011-11-09 28 views
0

嗨旁邊的文本框的值如問題我無法取消規定更改此複選框/檢查文本框..
小提琴:http://jsfiddle.net/Uehnh/1/
這裏是我的HTML爲什麼我不能,如果我使用的數據恢復到它

<table> 
<tr> 
<td><input type='checkbox'><span>Text1</span><input type='text'></td> 
</tr> 
<tr> 
<td><input type='checkbox'><span>Text2</span></td> 
</tr> 
<tr> 
<td><input type='checkbox'><span>Text3</span></td> 
</tr> 
<tr> 
<td><input type='radio'><span>None of all</span></td> 
</tr> 
</table> 

下面的代碼是不是讓我選或檢查checkbox..Actually這是爲了恢復文本框的以前清除數據..

$('.humble').live('change',function() 
{ 
    var th=$(this); 
    var input=th.closest('td').find('input[type="text"]'); 
    if(th.prop('checked',false)) 
    { 
     input.data('text',input.val()); 
     input.val(''); 
    } 
    else 
    { 
     input.val(input.data('text')); 
    } 
}); 

,這裏是完整代碼的小提琴http://jsfiddle.net/Uehnh/1/
我想恢復與以前的文本使用數據屬性的文本..但在這裏我無法檢查第一個複選框..這是不允許我做..
請檢查並讓我知道錯誤..

+0

它沒有被檢查,因爲你的代碼阻止了它。老實說,很難理解代碼。你能解釋它是如何工作的嗎? –

回答

2

您在條件語句中將checked屬性設置爲false。也許這不是你的意圖。

在此行中:

if(th.prop('checked',false)) 

你的意思是:

if(th.prop('checked') == false) 
+0

完美的老闆..完美的捕捉... – Exception

1

您的代碼不作出了很多的意義,我,但我覺得明白你在做什麼試圖去做。如果單選按鈕被選中,它應該取消選擇所有複選框並清除輸入,對吧?

我認爲這是你在找什麼:

$("input:radio").change(function(){ 
    if ($(this).is(":checked")){ 
     $("input:checkbox").attr("checked", false); 
     $("input:text").val(""); 
    } 
}); 
1

正如其他人已經提到你得到了,如果條件是錯誤的。請使用 -

if (th.prop('checked') == false) 

另外,在許多情況下,放在一起的代碼無法正常工作。如取消選中任何複選框,即使其他複選框被選中或者輸入並且在沒有其他複選框被選中時清除文本框,也會檢查單選按鈕等。

我已經更新了它的工作方式,我認爲,您希望它能夠工作 - 看看這個fiddle

相關問題