JavaScript单选按钮选择验证字段?

时间:2012-05-03 02:50:20

标签: javascript forms validation radio-button checkbox

我需要使用javascript,这样当选择一个单选按钮时没有任何反应,但如果另一个是(例如,其他地址),它将验证以下字段;

街道 suberb 邮政编码

虽然我发布了这个,但它可能是一个类似的方法,但是当我有一个复选框和一个文本框时,我怎么能这样做,以便只有选中复选框才能使文本框保持为空...

谢谢大家!!!!如果需要,可以询问更多细节,我在解释事情时非常糟糕!

3 个答案:

答案 0 :(得分:1)

/ *检查员工详细信息页面中的无线电验证* /

function editPage()
{
var select=document.frmEmployeeDetails.radSelect;
if (radioValidate(select,"Select an Employee"))
      {
window.open("EditEmployee`enter code here`.html","_self");
      }
return false;
}   

希望这个例子可以帮助你的朋友。

答案 1 :(得分:0)

由于他们点击它时会检查单选按钮,你可以将onClick事件添加到其中一个单选按钮而不是另一个。

<input type='radio' id='test' name='test-1' />
<input type='radio' id='test' name='test-2'onClick='Validate();'/>

对于复选框,当用户选中该框时,您应将焦点设置为文本输入字段。这样,如果用户离开该字段(onBlur),您可以给他们一个错误/警告来填写文本。

<input type='checkbox' id='testChkbx' name='testChkbx' onClick=' /*Set the focus to the text box*/'/>

<input type='text' id='testText' name='testText' onBlur='/* Check to make sure the value of the checkbox is not empty. */'/>

答案 2 :(得分:0)

我假设您可能正在使用jQuery,因为您没有说。如果没有,那么你仍然可以采用这些概念并将它们移植到普通的旧javascript或你正在使用的任何东西。

示例标记

<form id="address-form">
 <input type="radio" name="validate" id="validate_address" value="yes"> Validate<br>
 <input type="radio" name="validate" value="no"> Don't Validate<br>
 Street <input name="street"><br>
 Suberb <input name="suberb"><br>
 Postcode <input name="postcode"><br>
 <input type="submit">
</form>​​​​​

条件验证

在页面的某个位置<script>标记或您包含的javascript文件中,创建一个提交事件,在执行验证之前检查无线电输入的值。

$('#address-form').submit(function(event) {
    if ($('input[name=validate]:checked').val() === 'yes') {
        if (!formValid()) {
            event.preventDefault(); // Don't submit the form
        }
    }
});

// Perform validations
function formValid() {
    if ($('input[name=street]').val().length == 0) {
        // tell them ...
        return false;
    }
    if ($('input[name=suberb]').val().length == 0) {
        // tell them ...
        return false;
    }
    if ($('input[name=postcode]').val().length == 0) {
        // tell them ...
        return false;
    }

    return true;
}

应该这样做!

我创建了一个jsfiddle,你可以根据需要进一步搞砸 - http://jsfiddle.net/nilbus/JNnuX/2/

使用复选框

这与使用复选框非常相似。而不是这个

    if ($('input[name=validate]:checked').val() === 'yes') {

只需检查您的复选框是否已选中。

    if ($('input[name=validate]').attr('checked')) {

http://jsfiddle.net/nilbus/JNnuX/3/