2017-02-07 47 views
1

如何点击提交时检查复选框是否被选中? 我希望它在未选中该框时显示警报。如何在继续之前检查复选框是否被选中?

http://jsfiddle.net/tjE24/42/

$('#submit').on('click', function() { 
    if($('#terms').is(':checked')) { 
    } 
    else { 
    alert("To proceed you must accept the terms.")   
    } 
}); 
+3

[jQuery if if checkbox is checked]可能重复(http://stackoverflow.com/questions/7960208/jquery-if-checkbox-is-checked) –

+0

[Check/Uncheck checkbox with javascript?]( http://stackoverflow.com/questions/8206565/check-uncheck-checkbox-with-javascript) –

+0

像你一样...... –

回答

2

看起来你想要做的就是从如果复选框未选中停止提交什么样的形式。不管你的函数结果如何,你的代码仍然会提交表单。您需要做的是将输入放入<form>标记中,并为onsubmit事件添加处理程序,该处理程序将取消表单提交。

HTML:

<form onsubmit="return check_checkbox()"> 
    <input type="checkbox" id="terms" unchecked/>Terms 
    <br /><br /> 
    <button id="submit"> 
     continue 
    </button> 
</form> 

的Javascript:

function check_checkbox() 
{ 
    if($('#terms').is(':checked')) { 
    return true; 
    } else { 
    alert("To proceed you must accept the terms."); 
    return false; 
    } 
} 

http://jsfiddle.net/tjE24/47/

+0

这正是我需要的,谢谢! – NipBoss

1

敷在$(document).ready(function(){});和使用.prop()

$(document).ready(function(){ 
    $('#submit').on('click', function() { 
    if($('#terms').prop('checked')==true) { 
    } 
    else { 
    alert("To proceed you must accept the terms.")   
    } 
    }); 
}); 
+0

太棒了!将它包装在.ready工作中,使用.prop over .is的好处是什么? – NipBoss

+0

它具有相同的功能 – pryxen

0

您的jsfiddle不工作的原因是,你需要等到文档附加事件处理程序之前加载。否则,jQuery在它存在之前正在寻找提交按钮。

为了确保该按钮加载,使用$(document).ready()

$(document).ready(function() { 
     $('#submit').on('click', function() { 
     if($('#terms').is(':checked')) { 
     } 
     else { 
      alert("To proceed you must accept the terms.")   
     } 
     }); 
    }); 

请注意,您已经有了一个额外的右大括号和括号(这是一个语法错误),现在关闭$(document).ready功能。

相关问题