Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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验证?_Javascript_Jquery_Html_Checkbox_Validation - Fatal编程技术网

如何使用单选和复选框按钮验证javascript验证?

如何使用单选和复选框按钮验证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>

在网店上,我需要检查用户是否检查了这个付款选择,以及他是否检查了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>
当未选中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代码中,而不是内联。注意,我从链接中删除了
    onclick=“validCommand();”
    ,并将其附加到DOM就绪事件中

  • 您不需要(也不应该)与“未定义”进行比较。这将满足
    (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代码中,而不是内联。注意,我从链接中删除了
    onclick=“validCommand();”
    ,并将其附加到DOM就绪事件中

  • 您不需要(也不应该)与“未定义”进行比较。这将满足
    (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