0

好的,我已经尝试了我能找到的每一个建议,但是在提交表单和淡出之后,这些值仍然存在。如果有人有建议...

<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> 

我已经添加了建议,但它仍然无法正常工作。也许我没有把它们放在正确的地方......?

4

4 回答 4

0

编辑:为什么它不起作用通读你的脚本。您添加的建议(我的代码)只是全局范围内的常规语句 - 当浏览器加载文件时

  1. 设置文档就绪方法
  2. 实现函数validate
  3. 执行 set-value-to-blank
  4. 设置 ajaxForm 值

我假设您想在表单经过验证(并继续)后重置表单。

在这种情况下,您希望在表单完成后运行重置代码。那是什么时候?这里:$("#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 元素/表单。

于 2012-07-24T16:21:48.217 回答
0

提交值时尝试将输入值设置为空白。

例如,var name = $('input[name=name]').val(' ');

于 2012-07-24T16:23:44.020 回答
0

使用 .val() 函数清除 text 的值,使用 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!

});
于 2012-07-24T16:28:38.540 回答
0
$("#form")[0].reset();

这可能会有所帮助

于 2013-05-20T13:49:12.040 回答