0

以下のコードでは、ハイパーリンクをクリックしても、テキスト ボックスが空の場合にもアラートが表示されません。私は何を間違っていますか?

<a href="#" class="but" id="next_btn">Next</a>
<input name="text" class="but" id="newcampaign" />

CM.Views.newCampaign = Backbone.View.extend({

  validate : function () {
    if ($("#newcampaign").val() == "") {
      alert("Enter campaing name");
    }
  },

  initialize : function() {
    _self=this
    this.campaign = new Campaign();
    this.campaign.url='js/editdata.json';
  }, 

  events:{
    'onclick #next_btn': 'submit_form'
  },

  submit_form : function(){
    alert("here");
  },
});
4

2 に答える 2

2

これを行う代わりに

events:{
  'onclick #next_btn': 'submit_form'
},

あなたが使用する必要があります

events:{
  'click #next_btn': 'submit_form'
},

イベント名が ではclickないのでonclickpreventDefaultまた、実行中にアンカーの動作を変更したい場合は、次のようにイベントを呼び出す必要があることも覚えておいてください。

submit_form : function(e) {
  e.preventDefault();
  alert("here");
},

引数について: https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault

検証の場合:

events:{
  'click #next_btn': 'validate'
},
validate: function(e) {
  e.preventDefault();
  if ($(this).val() == "") {
    alert("Enter campaign name");
  } else {
    // you should give the following instruction a url to navigate to
    Backbone.history.navigate(url, true);
  }
},
于 2013-07-08T14:54:46.647 に答える