2013-08-27 48 views
0

从我的角度来看,没有类似的问题真正解决这个问题。清除ajaxed表单的内容

我有一个表单,注册的用户。我用.post来处理ajaxing。下面是代码:

$('#register_user_form').submit(function(){ 
    $.post 
    (
     $(this).attr('action'), 
     $(this).serialize(), 
     function(data){ 
     console.log(data); 
     $('#alert_box2').html(data); 
     }, 
     "json" 
    ); 
    return false; 
    }); 

我知道我能得到通过,如果我返回假前加$('#input_field_id').val(' ');。但我必须为每个输入字段执行此操作。有没有更高效的方法?也许在所有字段中添加相同的类并清除类的值?我有一种感觉,尽管那会被认为是“不好的代码”。

回答

5

你不能重置表单吗?

this.reset(); 
return false; 
+0

+1,但我更喜欢这种方法 –

+0

+1如果他在表单上完全擦除之后,这是一个更好的方法。 – MLeFevre

+0

这是当天的胜利者。 '$('input')。val('')'工作,但它清除了我的提交按钮的值,从而使它成为一个空白按钮。 – JDillon522

3

什么刚:

$('input').val(''); 

此外,有什么错将一个类名给每个你想清楚的元素。

+1

您应该使用'$('#register_user_form input').val('');'以防万一同一页面上有更多表单。 –

+0

这工作,但它也清除了提交按钮的内容,从而使其成为一个空白按钮。 'this.reset();'更简单,容易处理。虽然 – JDillon522

0

猜测你的HTML,但你可以做这样的事情

$('#register_user_form :input').each(function() { 
    $(this).val(''); 
}) 
0

你可以为你想清楚,做这一切的输入字段指明了共同的类名...

$('classname').val(''); 

或使用

location.reload(); 
0

试试这个刷新。它只会根据您提交的特定表单清除输入值,因此如果这是问题,则不会清除整个文档。

$('#register_user_form').submit(function(){ 
    var ref = $(this); 
    $.post 
    (
     $(this).attr('action'), 
     $(this).serialize(), 
     function(data){ 
     console.log(data); 
     $('#alert_box2').html(data); 
     ref.children('input').each(function(){ 
      $(this).val(''); 
     }); 
     }, 
     "json" 
    ); 
    return false; 
    });