好的,我已经尝试了我能找到的所有建议,但在提交表单和fadeOut之后,这些值仍然存在。如果有人有建议......
<script type="text/javascript">
$(document).ready(function() {
$('#form1').ajaxForm( { beforeSubmit: validate } );
function validate(formData, jqForm, options) {
var name = $('input[name=name]').fieldValue();
var email = $('input[name=email]').fieldValue();
var message = $('textarea[name=message]').fieldValue();
if (!name[0]) {
alert('Please enter a value for name');
return false;
}
if (!email[0]) {
alert('Please enter a value for email');
return false;
}
if (!message[0]) {
alert('Please enter a value for message');
return false;
}
}
var name = $('input[name=name]').val('');
var email = $('input[name=email]').val('');
var message = $('textarea[name=message]').html('');
$("#form1").ajaxForm(function(){
$("#formplic").fadeOut(1000, function() {
$(this).html("<img src='images/postauto2.png'/>").fadeIn(2000);
});
});
});
</script>
我已经添加了这些建议,但它仍然无效。也许我不是把它们放在正确的地方......?
答案 0 :(得分:0)
修改:为什么它不起作用 仔细阅读您的脚本。您添加的建议(我的代码)只是全局范围内的常规语句 - 当浏览器加载文件时
我假设您要在验证后重置表单(并继续)。
在这种情况下,您希望在表单完成时运行重置代码。那是什么时候?这里:$("#form1").ajaxForm(function(){...
其他人实际上已经为您提供了确切的代码(我相信),但我认为这是您对计算机和JavaScript以及语言执行方式的理解问题。你应该做更多的功课,并尝试遵循你的脚本的逻辑。简单的调试工具(如alert("I'm resetting the values now!")
)会告诉您代码执行的时间(无论它是否在正确的位置)
在您的代码中没有任何地方确实尝试清除文本。这些将是告诉浏览器重置/删除内容的一些指令。我猜你只想在它正确时清除它,所以你要把它添加到.ajaxForm
回调
var name = $('input[name=name]').val(''); //inputs are like this <input value="Hi">
var email = $('input[name=email]').val('');
var message = $('textarea[name=message]').html(''); //textareas are like this <textarea>Hi</textarea>
顺便说一句,fadeOut只会让它“淡出”,它最终会隐藏块(css display:none;我猜),但不会改变DOM元素/形式。
答案 1 :(得分:0)
尝试在提交值时将输入值设置为空白。
例如, var name = $('input [name = name]')。val('');
答案 2 :(得分:0)
使用.val()函数清除文本的值,并使用html()函数清除 另外,如果你给每个输入一个ID,那么在jQuery中操作会更容易。
例如,创建一个这样的表单:
<form method="post" id="frmMessage" action="some_script.php">
<input type="text" name="name" id="txtName" />
<input type="text" name="email" id="txtEmail" />
<textarea name="message" id="txtMessage"></textarea>
</form>
然后在你的jQuery代码中:
$("#frmMessage").ajaxForm( function()
{
// Do whatever else you need to do first...
// Fade out the form's container
$("#txtName").val(''); // Clear the value of each box.
$("#txtEmail").val('');
$("#txtMessage").html(''); // Different for textareas!
});
答案 3 :(得分:0)
$("#form")[0].reset();
这可以帮助