难以获得Javascript表单进行验证

时间:2015-04-26 18:05:27

标签: javascript forms validation

现在几个小时都在寻找答案,我仍然没有找到解决方案。我试过寻找类似的问题,但没有一个帮助,真的。

所以基本上,不起作用的是表单提交时没有任何错误消息,即使表单上有错误也是如此。基本上,我可以将名称字段留空,一旦按下按钮,表单仍然会提交。希望这是有道理的。任何帮助表示赞赏

代码:

function validateFinale()
{
  var emailOne = document.getElementById("em1").value;
  var emailTwo = document.getElementById("em2").value;
  var name = document.getElementById("name1").value;

  if (compare())
  {
    if (name, 'Please enter name'))
    {
      if (validEmail(getElementById('em1'), 'Email invalid'))
      {
      }
    }
  }

  return false;
}

function validName(elem, helpmsg) {
  if (elem.value.length == 0) {
    alert(helpmsg);
    return false;
  } else {
    return true;
  }
}

function validEmail(elem, msg) {
  var wrongem = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]+$/;

  if (elem.value.match(wrongem)) {
    return true;
  } else {
    alert(msg);
    return false;
  }
}

function compare() {
  if (emailOne != emailTwo) {
    alert("Emails not the same");
    submitOk = "false";

    Document.getElementById("em1").value = " ";
    Document.getElementById("em2").value = " ";
    Document.getElementById("em1").focus();
  } else {
    alert("form complete, thank you");
  }
}     

http://jsfiddle.net/aj240/qgmt5yr8/

2 个答案:

答案 0 :(得分:0)

你犯了语法错误,首先你将emailOne声明为局部变量,而不是尝试在全局范围内达到它。您应该在全局范围内声明变量emailOne和emailTwo。

var emailOne;
var emailTwo; 
function validateFinale()
{
 emailOne = document.getElementById("em1").value;
 emailTwo = document.getElementById("em2").value;
 var name = document.getElementById("name1").value;

一个金币提示,请尝试在浏览器中按F12键,所有错误消息都会显示在控制台中。

答案 1 :(得分:-1)

尝试在输入元素中设置// Bogus data for example: an array with a dictionary let exampleString = "[{\"fields\": {\"key1\": 42}}]" // it would be `jsmethod` for you let exampleStringData = exampleString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) // Cocoa object from data var arrayFromData = NSJSONSerialization.JSONObjectWithData(exampleStringData!, options: nil, error: nil) as! NSArray // JSON from the object var toJS = NSJSONSerialization.dataWithJSONObject(arrayFromData, options: NSJSONWritingOptions.PrettyPrinted, error: nil)

let sanitized = jsmethod.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)

此外,如果您在电子邮件字段中设置required ="true",它将要求提供电子邮件地址(完全没有,但它只会接受任何带有&#34的内容; @&#34 ;)

代码<input type="text" required ="true"... 应为type="email",否则您将获得所有HTML元素