我正在使用名为liveValidation.js的小型库。 我使用它来验证表单中的几个输入。
如果有一些无效的输入,它应该会自动禁用表单按钮,但它无法正常工作。
这是我的HTML代码:
<form method="POST" id="contactForm">
<label for="name">Name</label>
<input type="text" name="name" id="contactFormName" value=""/>
<label for="email">E-Mail</label>
<input type="text" name="email" id="contactFormEmail" value=""/>
<label for="message">Your message here</label>
<textarea name="message" id="contactFormMessage"></textarea>
<input type="submit" id="submit" value="submit"/>
</form>
以下是我如何初始化liveValidation.js:
function liveValidation() {
var name = new LiveValidation('contactFormName');
name.add(Validate.Presence);
var email = new LiveValidation('contactFormEmail');
email.add(Validate.Presence);
email.add(Validate.Email);
var message = new LiveValidation('contactFormMessage');
message.add(Validate.Presence);
};
$(document).ready(function ($) {
$("#loadingDiv").hide(400);
liveValidation();
sendEmail();
});
这是AJAX请求代码:
function sendEmail() {
var form = $("#contactForm");
var resultDiv = $(".formResult");
$("#submit").click(function () {
$.ajax({
type: "POST",
url: "sendEmail.php",
data: form.serialize()
}).done (function (){
resultDiv.addClass('success').html('Message sent successfully')
}).fail(function () {
resultDiv.addClass('fail').html("Message not sent. Try again")
});
}
});
};
有人想过为什么这不能正常工作? 这里是livevalidation网站,如果它可以帮助 - &gt; http://livevalidation.com/
答案 0 :(得分:1)
您需要手动检查表单是否有效。为此,您需要一个(任何一个)LiveValidation对象
试试这个
$(document).ready(function ($) {
liveValidation();
sendEmail();
});
function liveValidation() {
var name = new LiveValidation('contactFormName');
name.add(Validate.Presence);
var email = new LiveValidation('contactFormEmail');
email.add(Validate.Presence);
email.add(Validate.Email);
var message = new LiveValidation('contactFormMessage');
message.add(Validate.Presence);
var automaticOnSubmit = name.form.onsubmit;
name.form.onsubmit = function(){
var valid = automaticOnSubmit();
if(valid)
alert('The form is valid!');
else
alert('The form is not valid!');
return false;
}
};
function sendEmail()
{
$("#submit").click(function () {
//submit form here
});
}
另一种更好的方法是,您可以使用任何LiveValidation对象来附加事件
#!/bin/bash
FILE=/tmp/list ## Assuming the list of files are in this file.
for file in $(cat $FILE); do
OLD_FILE=$file
NEW_FILE=$(echo $file|sed -e 's/jpg$/png/')
mv $OLD_FILE $NEW_FILE
done