【问题标题】:Javascript form validation problemsJavascript表单验证问题
【发布时间】:2015-12-09 22:17:06
【问题描述】:

好的,所以我觉得我的问题是一个非常简单的问题。基本上,我创建了一个网站,并尝试使用 javascript 来验证输入,所有这些最初都是一个。当输入字段留空时,会提示错误等等。我没有改变任何东西,现在没有任何形式的验证发生,它只是忽略了我的 javascript。有什么想法吗?

这是一个 Javascript 示例;

function validate(el){
var alphabets="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ";
var temp;

if (el.Full_Name.value == "") {
     alert("Cannot leave area field blank!");
     return false;
 }
}

for (var i=0;i<el.Full_Name.value.length;i++){
temp=el.Full_Name.value.substring(i,i+1)
if (alphabets.indexOf(temp)==-1){
alert("Sorry, your name contains a " + temp +", which is not allowed.")
return false
   }
  }

这是 HTML:

<form name="testform" onSubmit="return validate(testform)">
<table width="650" border="0">

<tr>
 <td width="79" valign="top">
  <label for="Full_Name">Full Name<span class="required_star"> * </span></label>
 </td>
 <td width="289" valign="top">
  <input size="15" type="text" name="Full_Name" id="Full_Name" maxlength="50" value="" />
 </td>
</tr>
<tr>
 <td colspan="4" style="text-align:center">
  <input type="submit" value="Proceed"/>
 </td>
</tr></table>
</form>

【问题讨论】:

  • Javascript 控制台中是否有任何错误?
  • 您的输入实际上是否在表单中。
  • 请发布 HTML,以便我们更好地查看。
  • 我似乎没有在控制台中收到任何错误。它真的让我很沮丧,现在突然之间,除非我不小心改变了一些东西而没有意识到
  • document.form.Full_Name.value 应该是 document.forms.testform.Full_Name.valuedocument.forms 是一个集合,您可以通过名称(如果有的话)或索引(您寻找的表单似乎是第一个,所以document.forms[0])访问成员。

标签: javascript validation


【解决方案1】:

你可以加快/简化一些事情:

<form name="testform" onSubmit="return validate(this)">

注意“this”的使用——它实际上是指表单元素本身...

JS:

 function validate(el) {
if (el.Full_Name.value == "") {
     alert("Cannot leave area field blank!");
     return false;
 }
}

演示:http://jsfiddle.net/tv9hntkL/

附:在您的情况下,正确的选择器是:(document.testform.Full_Name.value == "")

【讨论】:

  • 感谢您的回复!我只是尝试像您一样实现此功能,但仍然没有运气。在选择提交按钮时,它就像没有 javascript 一样继续进行
  • @Philip Newton,一个语法错误(至少),现在检查一下:jsfiddle.net/tv9hntkL/1 冗余右括号'}'是个问题......
  • 工作绝对令人难以置信。如果可以的话,再问一个问题吗?如果我想验证用户的输入是否超过 5 个字符,我将如何去做?
  • Np,很高兴它终于奏效了。要限制长度,您可以执行以下操作:jsfiddle.net/tv9hntkL/2
  • 您非常乐于助人!我不想用另一个问题来打扰你,但我觉得有必要哈哈!如果我以后想输入单选按钮或下拉菜单之类的东西,是否可以对此进行验证?
【解决方案2】:

您访问的表单输入错误。

var myForm =  document.forms.<form-name>;
myForm.<input-name>.value; // holds the value of a certain input

将使您能够正确访问该值。

【讨论】:

  • 感谢您的快速回复。我按照你建议的方式实现了,但仍然没有:document.forms.testform.Full_Name.value==""。
  • 请在您的原始帖子中提供您的 HTML。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-17
  • 2015-07-18
  • 2018-08-17
  • 2020-02-26
  • 2020-03-03
  • 2014-08-16
相关资源
最近更新 更多