确保我的表单中的所有表单在使用Ajax之前都有输入

时间:2016-03-07 17:21:47

标签: javascript jquery ajax

我有一组输入框,如果单击“添加更多”按钮,则可以添加越来越多的这些表单集。在我的表单中,我可以提交数据,并在重新加载页面时显示它。但是,在运行AJAX之前,我一直坚持确保所有字段都有值。我在这个项目中使用Jquery

我无法使用验证插件,因为我正在运行magento,每次尝试在“无冲突模式”下运行插件时,插件似乎都不起作用。因为我正在运行Magento,这意味着我需要在没有冲突模式下运行Jquery。

我已经看到了其他解决方案,但它们与输入框有关,我有1个输入框和2个选择框。如何确保之前填写的所有输入框以及所有未禁用的选择框在ajax调用之前都已选中?

以下是我的HTML的一部分:

<form>
    <input id="12">
    <select id="1">
        <option disabled="disabled" selected="selected">select please</option>
        <option value="01">Option 1</option>
        <option value="02">Option 2</option>           
     </select>
     <select id="2">
        <option disabled="disabled" selected="selected">Select Please</option>
        <option value="01">Option 1</option>
        <option value="02">Option 2</option>           
     </select>

3 个答案:

答案 0 :(得分:2)

如果您在.val()上使用<select/>,则使用点击事件,如果null上没有value属性,则会返回<option/>

注意:如果您在选项上添加了value属性,则无效。

编辑:执行!==比较会更快。

$("#submit-button").click(function(){
    //if this is true, then it is valid
    alert($("#1").val() !== null);
});

答案 1 :(得分:1)

您可以通过将输入值输入属性来实现。

此脚本会警告您的结构中有多少输入未完成或缺失的数量。

(没有jQuery)

var myForm=document.getElementsByTagName("form")[0];
var formSelectors=myForm.getElementsByTagName("select"),
    formTextBoxes=myForm.getElementsByTagName("input"),
    missing=0;
var i,
    length=formSelectors.length;
for(i=0;length>i;i++){
    if(formSelectors[i].value===formSelectors[i].children[0].value)
        //Check if select value is equal to
        //select please or Select please
        //MISSING! (select)
        missing++
}
length=formTextBoxes.length;
for(i=0;length>i;i++){
    if(formTextBoxes[i].value.length===0)
        //MISSING! (input)
        missing++
}
alert(missing)

答案 2 :(得分:-1)

试试这个:

if($('#12').val()!='') {
// your code
}