【问题标题】:Javascript confirm validation form [closed]Javascript确认验证表[关闭]
【发布时间】:2015-08-24 17:18:27
【问题描述】:


我需要请求确认以使用 javascript 将表单中的两个字段留空。这里有示例
Teory
字段1:空白;字段 2:空白;字段 3:空白;
如果 field1 在 empy 中,则返回 false;要求确认其他 2 个,例如“您确定要将字段 #.. 留空吗?” > 如果按 ok,检查 field3 否则返回 false

code

var field1 = document.form.field1.value;
var field2 = document.form.field2.value;
var field3 = document.form.field3.value;

if ((field1 == "") || (field1 == "undefined")) {
       alert("Cannot leave field1 blank");
       document.form.field1.focus();
       return false;
    }


     else if ((field2 == "") || (field2 == "undefined")) {      
     var x = confirm("Are U sure to leave field2 blank?");
  if (x)
      return true;
  else
    return false;
    }   


var y = confirm("Are U sure to leave field3 blank?");
  if (y)
      return true;
  else
    return false;
    }   

        else {
       document.form.submit();
    }

当然不行……有什么想法吗? 谢谢

【问题讨论】:

  • 当然你必须告诉我们到底出了什么问题,“它不起作用”不是问题描述。除此之外,您是如何定义document.form 的,它不是原生DOM 属性。你在关注document.forms 收藏吗?
  • 您能否包含与此表单关联的 HTML?
  • 你的代码有奇数个大括号。底部包含额外的右大括号 - 这是怎么回事?
  • 不起作用意味着如果 field2 和 field3 都为空,则表单不会提交,但我只有 field2 的确认消息...

标签: javascript forms validation


【解决方案1】:

我很快重写了你的 js。希望对你有所帮助。

var form = document.getElementById("myform");
var field1 = form.field1;
var field2 = form.field2;
var field3 = form.field3;

if (form.attachEvent) {
    form.attachEvent("submit", formValidation);
} else {
    form.addEventListener("submit", formValidation);
}

function formValidation(e) {
    if (e.preventDefault) e.preventDefault();

    if ((field1.value == "") || (field1.value == "undefined")) {
        alert("Cannot leave field1 blank");
        field1.focus();
        return false;
    }


    else if ((field2.value == "") || (field2.value == "undefined")) {      
        var x = confirm("Are U sure to leave field2 blank?");
        if (!x) {
            field2.focus();
            return false;
        }
    }   

    else if ((field3.value == "") || (field3.value == "undefined")) {
        var y = confirm("Are U sure to leave field3 blank?");
        if (!y){
            field3.focus();
            return false;
        }
    }

    else {
        console.log("sending");
        form.submit();
    }
};
<form action="" id="myform" method="POST">
    <input type="text" id="field1" name="field1">
    <input type="text" id="field2" name="field2">
    <input type="text" id="field3" name="field3">
    <input type="submit" value="send">
</form>

【讨论】:

  • 谢谢,但我的表单上有三个不同的按钮执行 3 个不同的提交。这就是为什么我更喜欢使用按钮。我可以稍后把整个表格发给你..
【解决方案2】:

由于昨天的建议,我终于解决了(我再也看不到消息了?!)..
如果有人需要,适合我的解决方案如下:

$ret = false
if ((field2 == "") || (field2 == "undefined")) {  
   var x = confirm("Are U sure to leave field2 blank?");
if (x) {
  $ret = true;
}
}   

if ((field3== "") || (field3== "undefined")) {      
if (confirm("Are U sure to leave field3 blank?")){
  $retu = true;
}   
}

if ( ($ret == true) && ($retu == true) ) {
document.form.submit();
    }

感谢所有帮助寻找解决方案的人!

【讨论】:

    猜你喜欢
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 2014-04-19
    • 1970-01-01
    相关资源
    最近更新 更多