验证表单javascript

时间:2014-09-25 12:55:32

标签: javascript php validation

我有一个包含以下验证规则的表单:



<script type="text/javascript">
var errmsg;
function validate()
{
var textA= document.getElementById("text1");
var textC = document.getElementById("text3");
var txt1 = document.getElementById("text1").value;
var txt3 = document.getElementById("text3").value; 
var txt1_len = txt1.length;
var txt3_len = txt3.length;
	if(txt1_len == 0 || txt1_len > 50 || txt1_len < 10)
	{
		errmsg = "Error .";
		document.getElementById("ermsg").innerHTML = errmsg;
		textA.focus();
		return false;
	}
	
	else if(txt3_len == 0 || txt3_len > 30 || txt3_len < 10)
	{
		errmsg = "Invalid password!";
		document.getElementById("ermsg").innerHTML = errmsg;
		textC.focus();
		return false;
	}
	
	
	else
	{
		return true;
					
	}
	
return false;
}

</script>
&#13;
&#13;
&#13;    

如果用户在第一个字段中输入少于10个字符,则应提醒用户。我想知道,如果他没有输入该字段中的某些字符,我是否可以提醒用户。

例如,如果用户输入mynamehere,我希望他输入我的姓名,并限制用户在该字段中输入电子邮件地址。

如何使用这些规则实现这一目标?

感谢

1 个答案:

答案 0 :(得分:0)

我已经拿走了你的片段并进行了编辑:

var errmsg;

function validate() {
  var textA = document.getElementById("text1");
  var textC = document.getElementById("text3");
  var txt1 = document.getElementById("text1").value;
  var txt3 = document.getElementById("text3").value;
  var txt1_len = txt1.length;
  var txt3_len = txt3.length;
  var $err = document.getElementById("ermsg");

  $err.innerHTML = "Everything is ok!";
  $err.style.color = "black";


  if (txt1_len == 0 || txt1_len > 50 || txt1_len < 10 || !/.+-.+-/.test(txt1)) {
    errmsg = "Error .";
    $err.innerHTML = errmsg;
    $err.style.color = "red";
    textA.focus();
    return false;
  } else if (txt3_len == 0 || txt3_len > 30 || txt3_len < 10 || !validateEmail(txt3)) {
    errmsg = "Invalid password!";
    $err.innerHTML = errmsg;
    $err.style.color = "red";
    textC.focus();
    return false;
  } else {
    return true;

  }

  return false;
}

function validateEmail(email) {
  var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9] {1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  return re.test(email);
}
<input type="text" id="text1" />

<input type="text" id="text3" />

<button onclick="return validate();">Validate</button>

<p>
  <div id="ermsg"></div>
</p>

测试结束于txt1txt3

的条件
!/.+-.+-/.test(txt1)

!validateEmail(txt3)

编辑:

字段text1上的规则似乎是:文字应仅包含数字/字母/减号。

因此您可以使用以下命令更改规则:

/^[a-z0-9\-]+$/i.test(txt1)

网上有许多RegExp教程,例如:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions