单选按钮发布显示值甚至没有任何按钮被检查如何验证这个?

时间:2013-08-15 21:46:12

标签: php html forms radio

我有一个注册表格,其中有性别广播选项,显示男性或女性。在HTML中没有选中,因为我希望用户检查一个。像这样:

<label class="radio">
    <input type="radio" name="gender" id="optionsRadios1" value="female">Female
</label>
<label class="radio">
    <input type="radio" name="gender" id="optionsRadios2" value="male">Male
</label>

我通过jquery ajax提交数据。奇怪的是,al输入的帖子显示

[性别] =&gt;男性,如果您提交的表格中没有选中2个选项

那么,如果它永远不会发布为空,我如何验证呢?

*如果未选择任何选项,我想返回错误,因此会强制用户选择正确的性别。

2 个答案:

答案 0 :(得分:0)

这样做的一个非常快捷的方法是默认在UI中进行选择。这样可以确保该值非空,因为您无法“取消选中”单选按钮。

<input type="radio" name="gender" id="optionsRadios1" value="female" checked> Female

编辑:
编写自己的提交功能,并将其绑定到提交按钮的onclick()

function submit() {
  if (!$("#optionsRadios1").prop("checked") && !$("#optionsRadios2").prop("checked")) {
    alert("please select a gender");
  }
  else {
    //Whatever you do to submit
  }
}

答案 1 :(得分:0)

以下代码将在客户端验证您的表单 此验证仅允许在选择其中一个性别时提交表单。如果没有提交单选按钮,则会显示警告消息并停止将表单重定向到action.php。

<form name='whatever' onsubmit='return validate();' method='POST' action='action.php'>
    <label class="radio">
    <input type="radio" name="gender" id="optionsRadios1" onchange='validate()' value="female"> Female
    </label>
    <label class="radio">
    <input type="radio" name="gender" id="optionsRadios2" onchange='validate()' value="male"> Male
    </label>
    <input type='submit' value='submit'>
</form>

<script type='text/javascript'>
    function validate(){
    var feObj=document.getElementById("optionsRadios1");
    var maleObj=document.getElementById("optionsRadios2");
    if (feObj.checked){
        return true;
    }
    if (maleObj.checked){
        return true;
    }
    alert ("Please select a gender");
    return false;
    }   
</script>