[英]How to validate a javascript validation with radio and checkbox button?
在网上商店中,我需要检查用户是否已检查此付款选择,以及他是否已检查CGU规则。
所以这是我的html:
<div id="choixPaiement">
<div class="choixDuReglement">
<ul>
<li><input type="radio" name="buttonModePaiement" value="tata"></li>
<li><input type="radio" name="buttonModePaiement" value="toto"></li>
<li><input type="radio" name="buttonModePaiement" value="titi"></li>
<li><input type="radio" name="buttonModePaiement" value="tutu"></li>
</ul>
</div>
<div id="accepte_cgv">
<p> <input type="checkbox" name="check_cgv" id="check_cgv"><label>Lu et approuvé</label></p>
<p><a onclick="validCommande();" class="btnValidCommande" href="javascript:;"><span>Valid my order</span></a></p>
</div>
</div>
这是我的javascript:
function validCommande(){
var paiement = $("input[@name=buttonModePaiement]:checked").val();
alert(paiement);
if(paiement == "undefined"){
alert('please choose payment method');
}
alert($('#check_cgv').is(':checked'));
}
当未选中单选按钮和复选框时,我收到两个警报消息:“未定义”和“假”(因此正确)。
但是,当我选中复选框且没有单选按钮时,我得到了它:“ on”和“ true”。
为什么呢
我想这就是你想要的
function validCommande() {
var paiement = $("input[name='buttonModePaiement']:checked");
if(paiement.length === 0)
alert('please choose payment method');
else
alert(paiement.val());
alert($('#check_cgv').is(':checked'));
}
另外,您不会关闭输入标签:
<input type="radio" name="buttonModePaiement" value="tata" />
如果您想验证单选按钮,请执行以下操作
<form name="as" method="post" action="n.php">
<input type="radio" id="x1" name="red">
<input type="radio" id="x2" name="red">
<input type="radio" id="x3" name="red">
<input type="radio" id="x4" name="red">
<input type="submit" value="button" onclick="return xyz()">
</form>
function xyz()
{
var x = document.getElementsByName("red");
for (var i=0; i<x.length; i++)
{
if (x[i].checked) {
return true;
}
}
// No radio button checked, return false.
alert("hello");
return false;
}
这是我要对您的代码执行的操作以及原因:
<div id="choixPaiement">
<div class="choixDuReglement">
<ul>
<li><input type="radio" class="buttonModePaiement" value="tata"></li>
<li><input type="radio" class="buttonModePaiement" value="toto"></li>
<li><input type="radio" class="buttonModePaiement" value="titi"></li>
<li><input type="radio" class="buttonModePaiement" value="tutu"></li>
</ul>
</div>
<div id="accepte_cgv">
<p> <input type="checkbox" name="check_cgv" id="check_cgv"><label>Lu et approuvé</label></p>
<p><a id="btnValidCommande" href="#"><span>Valid my order</span></a></p>
</div>
</div>
$(document).ready(function(){
$('#btnValidCommande').click(function(e){
e.preventDefault(); // stop the link from trying to navigate
validCommande();
});
});
function validCommande() {
var paiement = $(".buttonModePaiement:checked").val();
if (!paiement) {
alert('please choose payment method');
}
alert($('#check_cgv').is(':checked'));
}
重复标识符而不是名称时,请使用类。 名称对于表单提交之类的名称应该是唯一的。 name="buttonModePaiement"
应该是class="buttonModePaiement"
。
将事件附加在JS代码中,而不是内联。 请注意,我删除了onclick="validCommande();"
从您的链接添加到DOM ready事件中。
您不需要(也不应该)与“ undefined”进行比较。 这就足够了(paiement == "undefined")
---> (!paiement)
工作提琴: http : //jsfiddle.net/hMdKT/3/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.