2011-01-11 84 views
0

我有一個表單,在用戶選中條款和條件複選框(chkTerms)之前,不應提交表單。如果未提交表單,防止提交表單的最佳方法是什麼?驗證asp.net中的單個複選框

我會在窗體標記中調用JavaScript函數,但由於各種原因,這嵌入在我的母版頁中,所以我認爲這是不行的。例如,這可以在jQuery中完成嗎? 感謝

回答

2

禁止在窗體加載你的提交按鈕。 只有勾選複選框後才能啓用它,並在取消選中複選框後再次禁用它。

檢查下面的例子:

<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; 
    } 
} 
+0

你或許應該給你的用戶的一些反饋,是什麼原因造成的按鈕被禁用但是,是的,這是另一個好方法。 – lonesomeday 2011-01-11 13:06:38

+0

@lonesomeday - 感謝您的建議,我已經更新了答案。 – niksvp 2011-01-11 13:16:32

2

是,在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 
     } 
    } 
}); 
0

最好的辦法是用做JQuery bcoz如果你禁用一個按鈕,並只啓用複選框點擊,用戶可能不知道該按鈕僅在複選框被選中時纔會啓用。您可以使用上面提到的相同編碼。

0

問題,實際上,一旦「啓用」按鈕被所有我的其他驗證繞過表單提交反正是......