我有以下HTML
<form id="create_form" name="create_form" action="" method="post">
<input name="type" id="type" value="individuel" type="radio" /> Individuel <br/>
<input name="type" id="type" value="course" type="radio" /> Course <br/>
<button class="n" type="submit">Create</button>
</form>
当我得到单选按钮的值时,如果没有选中,我的JQuery / Ajax脚本会返回第一个单选按钮。
$(document).ready(function(){
$("form#create_form").submit(function() {
var type = $('input:radio[name=type]:checked').val();
...
我希望用户被迫考虑选择哪个,而不仅仅是默认值。
这是怎么做到的?
更新:
我会认为
$(document).ready(function(){
$("form#create_form").submit(function() {
var type = $('input:radio[name=type]:checked').val();
表示仅使用id="create_form"
获取表单中单选按钮的值。
但是因为我有下面的表单(<form id="something_else"
)和这些表单中的单选按钮也带有name="type"
,所以它提取了该值。
在html和JQuery中将name=type
更改为name=cname
解决了这个问题。
听起来像是JQuery中的一个错误,不是吗?
答案 0 :(得分:3)
尝试像这样定义变量(获取空字符串):
var type = $('input:radio[name=type]:checked').val() || '';
嗯,好的回答关于让用户选择的问题......试试这个:
var type = $('input:radio[name=type]:checked').val();
if (typeof type === 'undefined') {
alert('You must make a choice!');
return false;
}
答案 1 :(得分:2)
如果
( ! $("input:radio").is(':checked') )
不起作用?
你也可以尝试这样:
var is_checked = true;
$('input:radio').each(function(){
is_checked = is_checked && $(this).is(':checked');
});
if ( ! is_checked );