javascript不会返回false

杰克·史密斯

我可以在此处看到警报消息。即使返回false之后,我也可以看到我的表单将其发布。代码在哪里损坏?

function ValidateForm(){
    var productName = document.addProduct.product_name;
    var partNumber = document.addProduct.part_number;
    var description = document.addProduct.description;
    var price = document.addProduct.price;

    var formelements = [productName, partNumber, description, price];
    formelements.forEach(function(obj) {
        if(obj.value=="") {
           obj.style.borderColor = "#FF0000"; 
           alert(obj);
           return false;
        }
    });

我的HTML代码

<form action="product_formhandler.php" name="addProduct" id="addProduct" onsubmit="return ValidateForm();" method="post">
    <table>
        <tr>
            <td>
                Product Name:
            </td>
            <td>
                <input type="text" id="product_name" name="product_name" />
            </td>
        </tr>
        <tr>
            <td>
                Part number:
            </td>
            <td>
                <input type="text" id="part_number" name="part_number" />
            </td>
        </tr>
        <tr>
            <td>
                Description:
            </td>
            <td>
                <textarea id="description" name="description" rows="8" col="25"></textarea>
            </td>
        </tr>
        <tr>
            <td>
                Price:
            </td>
            <td>
                <input type="text" id="price" name="price" />
            </td>
        </tr>
        <tr>
            <td colspan="2" style="text-align: center;">

                <input type="reset" id="reset" value="Reset" />
                <input type= "hidden" name="addproduct" value="1" />
                <input type="submit" id="addProductSubmit" name="action" value="Add" />
            </td>
        </tr>
    </table>
</form>
昆汀

该函数ValidateForm没有return语句。您拥有的唯一功能就是传递给的匿名函数forEach

  • 调用前定义一个变量 forEach
  • 给它一个默认值(可能是true
  • 在循环中更改它(具体逻辑将取决于您要寻找的内容,但可能if (condition) { retVal = false; }没有else
  • 最后退还

这样:

var retVal = true;
formelements.forEach(function(obj) {
    if(obj.value=="") {
    obj.style.borderColor="#FF0000"; 
    alert(obj);
    retVal = false;
});
return retVal;

或者,使用传统的for循环:

for (var i = 0; i < formelements.length; i++) {
   var obj = formelements[i];
   if (obj.value == "") {
       obj.style.borderColor="#FF0000"; 
       alert(obj);
       return false;
   }
}

尽管一旦发现单个故障,该方法就会停止

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从JavaScript返回false不会停止执行HTML页面

来自分类Dev

JavaScript:onclick并返回false

来自分类Dev

返回false不会停止提交表单

来自分类Dev

返回false不会阻止表单提交

来自分类Dev

返回false不会停止表单提交

来自分类Dev

API javascript不会返回结果

来自分类Dev

JavaScript函数始终返回false

来自分类Dev

JavaScript没有返回false

来自分类Dev

总是返回false | Javascript | 对象

来自分类Dev

JavaScript 返回 false 但仍在提交

来自分类Dev

fread和fwrite在错误尝试中不会返回false

来自分类Dev

PHP:MySQLi-Query不会返回true或false?

来自分类Dev

jQuery每个循环返回false不会结束函数

来自分类Dev

Corda-Crypto.doVerify永远不会返回false

来自分类Dev

fread和fwrite在错误尝试后不会返回false

来自分类Dev

PHP:MySQLi-Query不会返回true或false?

来自分类Dev

strtotime的有效时间戳记不会返回false

来自分类Dev

svgpanzoom:返回false之前的beforeZoom不会停止

来自分类Dev

jQuery返回false不会在keydown上停止滚动

来自分类Dev

JCheckBox总是返回true / false但不会改变

来自分类Dev

从 onsubmit 函数返回 false 不会阻止表单提交

来自分类Dev

Javascript /解析:跟随不会返回“至”值

来自分类Dev

javascript插件不会返回元素的长度

来自分类Dev

简单的JavaScript表单验证不会返回true

来自分类Dev

JavaScript 不会返回输入元素值

来自分类Dev

javascript hasOwnProperty返回true而不是false?

来自分类Dev

JavaScript propertyIsEnumerable返回false,但仍可枚举

来自分类Dev

Javascript if else仅返回TRUE或FALSE

来自分类Dev

在javascript中,[] === []和[] == []都返回false