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;
}
}
我做错了吗?我的验证功能不起作用。请给我一些建议。
答案 0 :(得分:0)
我认为主要的错误在于document.suggestion.message.value
不是我理解的有效选择器。尝试getElementById
以选择该表单。
答案 1 :(得分:0)
要按名称访问表单,您必须执行以下操作:
var message = document.forms["suggestion"].elements["message"].value;
但更好的方法是使用 ID 。
<强> BUT 强>
最简单的方法,就是在<textarea>
<textarea required>
答案 2 :(得分:0)
代码很好,但您必须正确地将脚本放在文档
中看这里
http://jsfiddle.net/wLrg26s0/4/
在jsbin的左侧选择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 */}