我相信你忘了在你的小提琴中加載jQuery庫。此外,名稱爲ifmachinery
的輸入元素不存在...我相信您指的是名稱爲machinery
的那個?
我通常會建議將它綁定到.change()
事件,而不是將點擊事件綁定到輸入,然後根據輸入的值使用邏輯來決定做什麼。從這個意義上說,你的代碼將是可擴展的並且易於修改,並且可能更加冗長。
$(document).ready(function(){
$("input[name='machinery']").change(function(){
if($(this).val()=='yes') {
$("div.desc").show();
} else {
$("div.desc").hide();
}
});
});
http://jsfiddle.net/teddyrised/g63m9yyg/2/
如果你想要這個邏輯應用第一次加載頁面時,你就要跑/ DOM上執行這個邏輯準備好了。而不是重複的功能進行二次,即中:
$(document).ready(function(){
// Run when DOM is ready
if($(this).val()=='yes') {
$("div.desc").show();
} else {
$(("div.desc").hide();
}
// When input is changed
$("input[name='machinery']").change(function(){
if($(this).val()=='yes') {
$("div.desc").show();
} else {
$(("div.desc").hide();
}
});
});
你可以簡單地把邏輯函數,既DOM準備和輸入的onChange事件稱之爲:
$(document).ready(function(){
// Define logic
var ifMachinery = function(ele) {
if(ele.val()=='yes') {
$("div.desc").show();
} else {
$("div.desc").hide();
}
}
// Run logic on DOM ready
ifMachinery($("input[name='machinery']"));
// Run logic when input onChange is fired
$("input[name='machinery']").change(function() {
ifMachinery($(this));
});
});
http://jsfiddle.net/teddyrised/g63m9yyg/3/