【问题标题】:Form submission using backbone [closed]使用主干提交表单[关闭]
【发布时间】:2014-09-05 04:04:36
【问题描述】:

我正在使用 Backbone 提交表单。表单驻留在 html 页面(主页)中。提交表单时,我使用骨干模型的 .save() 方法将数据保存在数据库中。我使用 e.preventDefault(); 来防止提交并捕获值。

问题是提交后表单保持不变,这意味着输入字段填充了以前的值。如果我再次提交表单,那么以前的值会插入到数据库中。

如何使表单在​​提交后像第一个状态(空白)一样??

代码

HTML

<form  method="post" id="my_form">                    
     <input type="text" id="name" size="30"  required autofocus/>
     <input type="email" id="email " size="30" required/>
     <input type=" text " id="catagory" size="30" required/>                        
     <input type="submit"  value="Submit"/>
</form>

骨干

var My_view = Backbone.View.extend(
{
    el: $("body"),
    events: 
    {
        "submit #my_form": "save"    
    }, 
    initialize: function()
    {
        _.bindAll(this,'save');
    },
    save: function(e)
    {  
        e.preventDefault();
        var name = $('#name').val();
        var email = $('#email').val();  
        var catagory = $('#catagory').val(); 

        var data = {
            name : name, 
            email : email, 
            catagory : catagory 
        };

        var my_model = new My_model();              

        my_model.save(data, 
        {
            success: function(model,response) 
            {
                alert(JSON.stringify(response));
            },
            error: function(model,response)
            {
                alert(JSON.stringify(response));     
            }
        }); 
    }
});


var my_view = new My_view({});

【问题讨论】:

  • 请发布您的代码。
  • 提交后你会继续显示同一个表单吗?

标签: javascript php jquery forms backbone.js


【解决方案1】:

如果您只想清除表单,那么在您的 success 回调到 save 方法中,只需添加一些 javascript 即可:

my_model.save(data, 
        {
            success: function(model,response) 
            {
                alert(JSON.stringify(response));
                $('#myForm')[0].reset(); //native javascript
            },
            error: function(model,response)
            {
                alert(JSON.stringify(response));     
            }
});

请记住,这会让您的用户感到困惑 - 如果他们按下提交,然后表单似乎只是删除了他们的回复。您最好隐藏表单:$('#myForm').hide() 然后显示一条消息,说明表单已成功提交。或者将他们重定向到提交成功页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 2014-01-28
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多