首页 文章

模糊多个单选按钮

提问于
浏览
0

我有一个表单,想用javascript / jquery验证它 .

表格中的一个字段是性别,有两个单选按钮(男性和女性)

<input type="radio" name="gender" id="genderMale" onblur="verifyGender()">
<label for="genderMale">Male</label>
<input type="radio" name="gender" id="genderFemale" onblur="verifyGender()">
<label for="genderFemale">Female</label>

我希望通过离开它们来验证性别(使用 onblur ) .

function verifyGender()
{
    if(document.getElementById("genderMale").checked==true || document.getElementById("genderFemale").checked==true)
    {
        // success
    }
    else
    {
        // display error message
    }
}

如果用户使用他/她的键盘访问 <input> 字段,我会遇到一个小错误 . 当用户是女性时,她可以按Tab键转到性别 .

当用户继续按Tab键直到达到性别时,首先聚焦男性单选按钮 . 由于她不是男性,她再次按Tab键并按空格键或只需按右箭头键选择“女性”,但错误已经显示 .

所以,我决定在用户离开性别字段后只执行该功能,但我不知道如何 . 我该怎么办?

当用户仍在性别单选按钮上并且他/她尚未选择一个时,不得显示错误消息 .

1 回答

  • 0
    <input type="radio" name="gender" id="genderMale" value="male" />
    <label for="genderMale">Male</label>
    <input type="radio" name="gender" id="genderFemale" value="female" />
    <label for="genderFemale">Female</label>
    
            $('input:radio[name=gender]').change(function () {
                var _gender = $(this).val();
                if (_gender === 'male') {
                    console.log('male');
                } else {
                    console.log('female');
                }
            });
    

    为什么不在无线电选择器上使用change事件而不是在无线电元素旁边使用onblur事件 .

相关问题