Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript和jquery中的验证字段_Javascript_Jquery_Html - Fatal编程技术网

javascript和jquery中的验证字段

javascript和jquery中的验证字段,javascript,jquery,html,Javascript,Jquery,Html,我有四个单选按钮。如果选择最后一个单选按钮,则会出现一个文本框。我通过jquery处理了这个场景。现在我想验证一下,如果用户得到这个文本框,意味着如果用户选中了最后一个单选按钮,那么他应该提供一些文本。但是在我的例子中,如果我选中任何一个单选按钮,它告诉我提供一些文本。代码如下: <input type="radio" name="bus_plan" id="smallBtn" value="1" />1 <input type="radio" name="b

我有四个单选按钮。如果选择最后一个单选按钮,则会出现一个文本框。我通过jquery处理了这个场景。现在我想验证一下,如果用户得到这个文本框,意味着如果用户选中了最后一个单选按钮,那么他应该提供一些文本。但是在我的例子中,如果我选中任何一个单选按钮,它告诉我提供一些文本。代码如下:

    <input type="radio" name="bus_plan" id="smallBtn" value="1" />1
     <input type="radio" name="bus_plan" id="smallBtn" value="2" />2
     <input type="radio" name="bus_plan" id="smallBtn" value="3" />3
     <input type="radio" name="bus_plan" id="smallBtn" value="Promotional" />
      <span class="plantxt"><a style="cursor:pointer;" onclick="popup('popUpDiv')">Promotional Plan</a> (Please enter a promotional code)</span>
    <div class="reg-line" id="pr_code_id" style="display:none">
       <div class="reg-linea" align="left">Promotional Code: <sup>*</sup></div>
       <input type="text" name="bus_prcode" id="bus_prcode" class="reg-line-input" value="Promotional Code" onblur="if(this.value=='') this.value='Promotional Code'" onClick="if(this.value==this.defaultValue) this.value='';" />
       <br />
       <div>
            <div id="promotionalbox" style="display:none;font-size:13px;clear:both"></div>    
       </div>
</div>
<script type="text/javascript" src="js/jquery-1.7.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){     
    $("input:radio[name=bus_plan]").click(function(){  
        var values = $(this).val();
        if(values == 'Promotional'){
            $('#pr_code_id').show();
        }else{
            $('#pr_code_id').hide();    
        }
    }); 
}); 
</script>
1
2.
3.
促销计划(请输入促销代码)
促销代码:*

$(文档).ready(函数(){ $(“输入:radio[name=bus\u plan]”)。单击(函数(){ var值=$(this.val(); 如果(值=‘促销’){ $('pr#u code_id').show(); }否则{ $('#pr#u code_id').hide(); } }); });

在js中,如果我提醒document.getElementById('bus_prcode').value的值,那么它总是显示促销代码,这只是最后一个单选按钮的值。

您不应该有具有相同ID的元素(您的单选按钮)。另外,通过运行
document.getElementById('bus\prcode')
而不是单选按钮,可以获得文本框。您应该为最后一个单选按钮(例如btnPromotional)指定一个唯一的ID,然后单击它:

$("#btnPromotional").click(...)

您的代码有点乱,这是这个问题的根源。记住,每个ID一个元素

您可能还发现查看jQuery.is()会有所帮助,例如:

$('input[value="Promotional"]').is(':checked')
n.b.我不建议您使用上述方法,您应该首先以适当的方式使用标识符


同样值得注意的是,您的代码在我使用Chrome时运行良好。请参见此处的一个示例(我已为您展开):

所有单选按钮不能具有相同的id。要展开此示例,id是单数的,只能存在于文档的一个元素上。在这里使用类。可能无法解决问题,但仍然是错误的。