形式submited后无法清除输入值(Can't clear the input value

2019-07-30 14:41发布

好吧,我已经试过每一个建议,我能找到,但这些值提交表单和淡出后仍然存在。 如果任何人有什么建议?

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

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

Answer 1:

编辑 :为什么它不工作,通过你的脚本读取。 您添加的建议(我的代码)就是在全球范围内有规律的语句 - 当浏览器加载文件时,它

  1. 设置文件准备好方法
  2. 实现功能验证
  3. 执行设定值到空白
  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>

顺便说一句,只是淡出使得“淡出”,它结束了隐藏块(CSS显示:无;我猜),但不改变的DOM元素/形式。



Answer 2:

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

例如,变种名称= $( '输入[名称=名]')VAL(”“)。



Answer 3:

使用.VAL()函数来清除文本的价值,和HTML()函数来清除同时,它会更容易在jQuery的操作,如果你给每个输入自己的ID。

例如,创建一个这样的形式:

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

});


Answer 4:

$("#form")[0].reset();

这将有助于



文章来源: Can't clear the input value after form is submited
标签: jquery forms