如何使用单选和复选框按钮验证javascript验证?
在网店上,我需要检查用户是否检查了这个付款选择,以及他是否检查了CGU规则 这是我的html:如何使用单选和复选框按钮验证javascript验证?,javascript,jquery,html,checkbox,validation,Javascript,Jquery,Html,Checkbox,Validation,在网店上,我需要检查用户是否检查了这个付款选择,以及他是否检查了CGU规则 这是我的html: <div id="choixPaiement"> <div class="choixDuReglement"> <ul> <li><input type="radio" name="buttonModePaiement" value="tata"></li>
<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>
当未选中radiobutton和checkbox时,我会收到两条警告消息:“undefined”和“false”(这是正确的)
但是当我选中复选框,没有单选按钮时,我得到了:“开”和“真”
为什么?我想这就是你想要的
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" />
我想这就是你想要的
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" />
以下是我将如何处理您的代码以及原因:
<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'));
}
卢埃特普洛韦
$(文档).ready(函数(){
$('btnValidCommand')。单击(函数(e){
e、 preventDefault();//停止链接尝试导航
validCommand();
});
});
函数validCommand(){
var paiement=$(“.ButtonDepaiment:已选中”).val();
如果(!对){
提醒(“请选择付款方式”);
}
警报($('check#u cgv')。是(':checked');
}
- 重复标识符而不是名称时使用类。对于表单提交之类的事情,名称应该是唯一的
应该是name=“ButtonDepaiment”
class=“ButtonDepaiment”
- 将事件附加到JS代码中,而不是内联。注意,我从链接中删除了
,并将其附加到DOM就绪事件中onclick=“validCommand();”
- 您不需要(也不应该)与“未定义”进行比较。这将满足
-->(paiement==“undefined”)
(!paiement)
工作小提琴:以下是我对您的代码所做的操作以及原因:
<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'));
}
卢埃特普洛韦
$(文档).ready(函数(){
$('btnValidCommand')。单击(函数(e){
e、 preventDefault();//停止链接尝试导航
validCommand();
});
});
函数validCommand(){
var paiement=$(“.ButtonDepaiment:已选中”).val();
如果(!对){
提醒(“请选择付款方式”);
}
警报($('check#u cgv')。是(':checked');
}
- 重复标识符而不是名称时使用类。对于表单提交之类的事情,名称应该是唯一的
应该是name=“ButtonDepaiment”
class=“ButtonDepaiment”
- 将事件附加到JS代码中,而不是内联。注意,我从链接中删除了
,并将其附加到DOM就绪事件中onclick=“validCommand();”
- 您不需要(也不应该)与“未定义”进行比较。这将满足
-->(paiement==“undefined”)
(!paiement)
工作小提琴:如果要验证单选按钮,请按此方法执行
<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;
}
函数xyz()
{
var x=document.getElementsByName(“红色”);
对于(var i=0;i如果要验证单选按钮,请按此方式执行
<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;
}
函数xyz()
{
var x=document.getElementsByName(“红色”);
对于(var i=0;要检查undefined
,您应该使用typeof variable==“undefined”
。要检查undefined
,您应该使用typeof variable==“undefined”
@Adam Rackis,您错过了一个结束的小括号。@ptriek-很公平。Visual studio在我实际测试代码时向我抱怨过,但是n每次我添加data foo属性时,visual studio都会抱怨…*叹气*+1检查长度是正确的方法,因为jQuery返回一个匹配元素的数组,在这种情况下,如果没有检查任何项,那么您将有一个空数组。@Adam Rackis,您错过了一个右括号。@ptriek-fair ough.visual studio.com当我实际测试代码时,VisualStudio向我抱怨,但每次我添加data foo属性时,VisualStudio都会抱怨…*叹气*+1检查长度是正确的方法,因为jQuery返回匹配元素的数组,在这种情况下,如果未检查任何项,则将有一个空数组。感谢这些信息,这是r我的JS感谢这些信息,我的JS