繁体   English   中英

用JS进行表单验证不起作用

[英]Form validation with JS not working

HTML

<form name="suggestion" method="post" action="suggestion.php"              
    class="elegant-aero" onSubmit="return validate()" >                 
    <label>
    <span>Message :</span>
    <textarea id="Message" name="message" placeholder="Your Message to Us"></textarea>
    </label>
    <input type="submit" class="buttonc" value="SEND" onclick="validate()">
</form>

JavaScript的

function validate() {
    var message = document.suggestion.message.value;
    if (message == "") {
        alert("Message box should not be leaved empty");
        return false;
    } else {
        return true;
    }
}

难道我做错了什么? 我的验证功能不起作用。 请给我一些建议。

我认为主要的错误在于,按照我的理解, document.suggestion.message.value不是有效的选择器。 尝试使用getElementById来选择该表单。

要通过名称访问表单,您必须执行以下操作:

var message = document.forms["suggestion"].elements["message"].value;

但是更好的方法是使用ID


最简单的方法是在<textarea>设置所需的属性

<textarea required>

代码不错,但是您必须在文档中正确放置脚本

看这里http://jsfiddle.net/wLrg26s0/4/在jsbin的左侧no wrap - in <body>选择no wrap - in <body>它的意思是代码看起来像

<body>
   <!-- page -->
   <script>
      //js here
   </script>
<body>

函数以这种方式声明转到window名称空间。 它的全局名称空间,并存在onSubmit搜索validate功能。

如果在jsbin onLoad左侧选择,则代码看起来像(并且不要忘记单击运行)

   <script>
      $( document ).ready(function() {
        //js here
      });
   </script>

而且脚本不起作用,因为函数是在其他地方声明的。 要解决此问题,您必须以这种方式声明功能

window.validate = function(){ /*code */}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM