Javascript 单选按钮在ie中不工作

Javascript 单选按钮在ie中不工作,javascript,php,html,Javascript,Php,Html,我的表单中有4个单选按钮,一旦我提交表单,应选中任何单选按钮,如果没有,将显示警告消息。它在chrome、firefox中正常工作,但在ie one中,我检查了收音机,它总是显示警报,因此我无法提交表单,我在下面给出了我的代码,请帮助我 PHP: 用户名: 居住城市: 我是一名医生 艺术家 模型 作曲家 节拍制作人 无  我想收到您的通讯 JS: 函数validateForm(){ var province=document.forms[“myForm”][“province”].

我的表单中有4个单选按钮,一旦我提交表单,应选中任何单选按钮,如果没有,将显示警告消息。它在chrome、firefox中正常工作,但在ie one中,我检查了收音机,它总是显示警报,因此我无法提交表单,我在下面给出了我的代码,请帮助我

PHP:


用户名:
居住城市:
我是一名医生
艺术家
模型
作曲家
节拍制作人 无  我想收到您的通讯
JS:


函数validateForm(){
var province=document.forms[“myForm”][“province”].value;
如果(省==0){
警报(“选择省”);
document.myForm.province.focus()文件
返回false;
}
var user_type=document.forms[“myForm”][“user_type”].value;
if(用户类型==null | |用户类型==“”){
提醒(“选择您是谁”);
返回false;
}
var letter=document.forms[“myForm”][“letter”].value;
如果(字母==null | |字母==“”){
警报(“选择您希望接收新闻信函”);
返回false;
}
}

问题在于,对于IE,
文档。表单[“myForm”][“user\u type”]
是一个HTMLCollection,没有

解决办法是改变

var user\u type=document.forms[“myForm”][“user\u type”].value

var user\u type=document.querySelector('form[name=“myForm”]input[name=“user\u type”]:checked')。值

我观察到的是:

代码中没有名称
(您提供的)。如果你把它包括在这里,它将不起作用

<script type="text/javascript">
function validateForm() {
    var province = document.forms["myForm"]["province"].value;
    if (province == 0 ) {
        alert("Select Province");
        document.myForm.province.focus() 
        return false;
    }
    var user_type = document.forms["myForm"]["user_type"].value;
        if (user_type == null || user_type == "") {
        alert("Select Who You are");
        return false;
    }
    var letter = document.forms["myForm"]["letter"].value;
        if (letter == null || letter == "") {
        alert("Select that you want to receive news letter");
        return false;
    }
}
</script>

因此,正如Rayon Dabre先生所说,“没有任何元素被命名为省”。所以,我也同意他的看法。从validateForm()函数中删除
province
验证(因为它不在
中使用)

此代码应该可以实现以下功能:

function validateForm() {

    var user_type = document.getElementsByName('user_type');
    var u_type = '';

    for (var i = 0, length = user_type.length; i < length; i++) {
        if (user_type[i].checked) {
            // do whatever you want with the checked radio
            u_type = user_type[i].value;

            // only one radio can be logically checked, don't check the rest
            break;
        }
    }

    if (u_type == "") {
        alert("Select Who You are");
        return false;
    }
    var letter = document.getElementsByName('letter')[0].checked;

    if (letter == "" || letter == undefined) {
        alert("Select that you want to receive news letter");
        return false;
    }
}
函数validateForm(){
var user_type=document.getElementsByName('user_type');
变量u_类型=“”;
for(var i=0,length=user_type.length;i
没有一个元素的名称是
@Rayon-Dabre,这无关紧要。我只需要关于用户类型及其验证您的html无效。也许有问题。删除第2行和第4行中的
。同时删除第13行中的
。不在chrome中验证是否将省更改为市?这很重要。
<script type="text/javascript">
function validateForm() {
    var province = document.forms["myForm"]["province"].value;
    if (province == 0 ) {
        alert("Select Province");
        document.myForm.province.focus() 
        return false;
    }
    var user_type = document.forms["myForm"]["user_type"].value;
        if (user_type == null || user_type == "") {
        alert("Select Who You are");
        return false;
    }
    var letter = document.forms["myForm"]["letter"].value;
        if (letter == null || letter == "") {
        alert("Select that you want to receive news letter");
        return false;
    }
}
</script>
<script type="text/javascript">
function validateForm() {

    var user_type = document.forms["myForm"]["user_type"].value;
        if (user_type == null || user_type == "") {
        alert("Select Who You are");
        return false;
    }
    var letter = document.forms["myForm"]["letter"].value;
        if (letter == null || letter == "") {
        alert("Select that you want to receive news letter");
        return false;
    }
}
</script>
function validateForm() {

    var user_type = document.getElementsByName('user_type');
    var u_type = '';

    for (var i = 0, length = user_type.length; i < length; i++) {
        if (user_type[i].checked) {
            // do whatever you want with the checked radio
            u_type = user_type[i].value;

            // only one radio can be logically checked, don't check the rest
            break;
        }
    }

    if (u_type == "") {
        alert("Select Who You are");
        return false;
    }
    var letter = document.getElementsByName('letter')[0].checked;

    if (letter == "" || letter == undefined) {
        alert("Select that you want to receive news letter");
        return false;
    }
}