Backbone js button-Klick-Ereignis nicht auslösen.

Ich habe eine ajax-Funktion auf die Initialisierung der Haupt-router, der scheint zu hindern, die Falle meiner signin-button in signin.js. Wenn ich auf die signin-button, es muss nicht seine Funktion, sondern die browser stellen die Eingänge für die URL (d.h. Benutzername und Passwort).
Aber wenn ich entfernen Sie die ajax-Funktion initialisieren, ich kann mich erfolgreich einloggen.

Habe ich einige der codes, die ich auf Arbeit bin. Dank

main.js

initialize: function(){
    $.ajax({
      type: "GET",
      url: "something here",
      contentType: "application/json",
      headers: {
          'someVar': something here
      },
      statusCode: {
          404: function() {
              console.log('404: logged out');
              if (!this.loginView) {
                  this.loginView = new LoginView();
              }
              $('.pagewrap').html(this.loginView.el);
          },
          200: function() {
              console.log('200');
              if (!this.homeView) {
                  this.homeView = new HomeView();
              }
              $('.pagewrap').html(this.homeView.el);
          }
      }
    });
  //return false;         
},

signin.js

var SigninView = Backbone.View.extend ({
    el: '#signin-container',
    events: {
        "click #btn-signin" : "submit"
    },
    submit: function () {
        console.log('signin');
        $.ajax({ ... });
        return false;
    }
});
var toSignin = new SigninView();
window.anotherSigninView = Backbone.View.extend({
    initialize: function() {},
    render: function() {}
});

home.js

window.HomeView = Backbone.View.extend ({
    initialize: function() {
        this.render();
    },
    render: function() {
        $(this.el).html( this.template() );
        return this;
    }
});

einige html -

<form id="signin-container">
<table id="tbl-signin">
    <tr>
        <td><div class="input-box"><input class="input-text" type="text" name="username" placeholder="Username"></div></td>
        <td><div class="input-box"><input class="input-text" type="password" name="password" placeholder="Password"></div></td>
        <td><input id="btn-signin" class="button" value="Sign In"></td>
    </tr>
    <tr>
        <td class="opt"><input class="checkbox" type="checkbox" name="rememberMe" value="true"><label class="opt-signin">Remember Me?</label></td>
        <td class="opt"><a class="opt-signin" href="#">Forgot Password?</a></td>
        <td></td>
    </tr>
 </table>
 </form>
Können Sie Ihre HomeView code ? Und wo hast du das instanziieren der SigninView ?
Ich habe die homeView nichts besonderes, obwohl. var signinView = new SigninView(); Ich stellte es auf den Boden signin.js wenn das ist, was du fragst
Wenn Sie löschen Sie die beiden Zeilen deines ajax-Funktion : $('.pagewrap').html - ( ... ; es funktioniert immer noch ?
gut, es verliert seinen Zweck und ich wäre nicht in der Lage zu testen, die signin-button, wie es in der homeView
Sorry, ich dachte, Sie waren mit <a /> links. Meine Antwort wird verhindert, dass links standardmäßig Verhalten.

InformationsquelleAutor OneScrewLoose | 2014-01-27

Schreibe einen Kommentar