2009-08-06 46 views
1

不確定最好的方式來解釋這個...我有一個輸入,您可以輸入兩次,但也是一個複選框,如果你想省略某一天,從而使輸入有點沒用的,所以我想禁用它們...複選框更改父tr,並且輸入包含在

這就是我目前所面對的HTML(重複7次):

<td><div>From:</div><input type="text" name="F_MON"></td> 
<td><div>To:</div><input type="text" name="T_MON"></td> 
<td class="unavailableday"><input type="checkbox" name="MON_UNAVAIL" value="Y"> Unavailable?</td> 

然後JavaScript的:

$("tr td input[type=checkbox]").bind("click", function() { 
    var $this = $(this); 
    if($this.is(':checked')) { 
     $this.parents('tr').css({'background-color' : 'lightyellow'}); 
     $this.parents('tr input').siblings('input type=[text]').attr("disabled", true); 
    } 
}); 

不幸的是,當你檢查框時,相應的tr變成黃色,這是完美的,但之前的輸入不會禁用...我還想做一個.unmask(),並在.val()殘疾人,有點希望如果我能得到父母/兄弟姐妹的權利,這將很容易適應:

謝謝!

回答

2

嘗試

$("tr td :checkbox").bind("click", function() { 
    var $this = $(this); 
    if($this.is(':checked')) { 
     var $row = $this.closest('tr'); 
     $row.css('background-color', 'lightyellow'); 
     $this.siblings(':text').attr("disabled", "disabled"); 
    } 
}); 
+0

絕對完美的,太感謝你了!它現在正在運作一種絕對的治療:)一個簡單的問題......是否有替代'禁用'選項?我不想讓用戶更改內容,但我確實希望將信息張貼出來...只讀似乎不起作用,可能是我正在使用的mask()函數?我確實嘗試揭穿,但沒有喜悅......再次感謝! – Nick 2009-08-06 10:34:05

+0

您可以隱藏輸入並將當前值複製到您顯示的標籤中以代替隱藏的輸入。 – redsquare 2009-08-06 10:35:22

+0

其實真的很棒,謝謝!可能只是做一個PHP if語句來查看該框是否被選中,也可能是一個好的解決方案。 再次感謝! – Nick 2009-08-06 10:40:44