我有一個表單,在用戶選中條款和條件複選框(chkTerms
)之前,不應提交表單。如果未提交表單,防止提交表單的最佳方法是什麼?驗證asp.net中的單個複選框
我會在窗體標記中調用JavaScript函數,但由於各種原因,這嵌入在我的母版頁中,所以我認爲這是不行的。例如,這可以在jQuery中完成嗎? 感謝
我有一個表單,在用戶選中條款和條件複選框(chkTerms
)之前,不應提交表單。如果未提交表單,防止提交表單的最佳方法是什麼?驗證asp.net中的單個複選框
我會在窗體標記中調用JavaScript函數,但由於各種原因,這嵌入在我的母版頁中,所以我認爲這是不行的。例如,這可以在jQuery中完成嗎? 感謝
禁止在窗體加載你的提交按鈕。 只有勾選複選框後才能啓用它,並在取消選中複選框後再次禁用它。
檢查下面的例子:
<input type="submit" id="btn" disabled="true" value="Submit"/>
<input type="checkbox" id="chk" onchange="submitStatus();">Terms and Conditions</input>
和你的腳本功能應該是
function submitStatus(){
if(document.getElementById('chk').checked){
document.getElementById('btn').disabled = false;
}else{
document.getElementById('btn').disabled = true;
}
}
是,在jQuery中這是很簡單的:
$(document).ready(function(){
$('#myform').submit(function(e){ // when the form is loaded
if (!$('input[name="chkTerms"]')[0].checked) { // if the input with the name "chkTerms" is not checked
e.preventDefault(); // prevent the form submission
// provide feedback to the user in some way
}
}
});
最好的辦法是用做JQuery bcoz如果你禁用一個按鈕,並只啓用複選框點擊,用戶可能不知道該按鈕僅在複選框被選中時纔會啓用。您可以使用上面提到的相同編碼。
問題,實際上,一旦「啓用」按鈕被所有我的其他驗證繞過表單提交反正是......
你或許應該給你的用戶的一些反饋,是什麼原因造成的按鈕被禁用但是,是的,這是另一個好方法。 – lonesomeday 2011-01-11 13:06:38
@lonesomeday - 感謝您的建議,我已經更新了答案。 – niksvp 2011-01-11 13:16:32