2012-10-05 97 views
0

我正在嘗試修改表單,使用JavaScript填充此表單的選項。我差不多完成了,但是我創造了一個我無法克服的里程碑。我想知道如果有人可以幫助。樣品是可利用的形式在這裏:http://jsfiddle.net/vladc77/bq5U6/3/使用Jquery的營業時間表格

我可以成功地分配閉館日(星期六&星期日),但我不能改變的狀態通過檢查/形式取消選中複選框的所有工作日內(禁用/啓用)。請讓我知道什麼都沒有在這一行改變我的風格分配的方式向複選框來完成:

$(this).append(' <span class="closed custom-checkbox"><input type="checkbox" name="closed" value="closed" class="closed" id="closedHoursElement" onchange="closedHours()"><span class="box"><span class="tick"></span></span></span>Closed'); 

預先感謝您。

回答

0

這是因爲你試圖讓複選框的兄弟姐妹..它只是兄弟是一個跨度元素。 select元素是父元素的同胞。

$('input[type=checkbox]').change(function() { 
     $(this).parent().siblings('select').prop('disabled', this.checked); 
}); 

http://jsfiddle.net/vladc77/bq5U6/3/

你也應該使用.prop()設置禁用屬性。的jQuery 1.6+

從jQuery的文檔

的.prop()方法應該被用來設置殘疾人和檢查,而不是.attr()方法。

使用道具設置disabled屬性你可以將其設置爲true或false

$(element).prop('disabled',true); // disabled 
$(element).prop('disabled',false); // not disabled 
+0

謝謝你很多。現在有道理。順便說一句,我想知道如果你可以在這種情況下如何使用.prop()的示例。我嘗試過,但沒有成功。再次感謝你。 – vladc77

+0

@ vladc77我在最後添加了如何使用prop ..你通常只需要傳遞true/false屬性。我編輯你的代碼,我通過this.checked如果選中返回true,如果不選中則返回false –

+0

我明白了。再次感謝你。我非常感謝您的幫助。 – vladc77