Simple Form validation failing Backbone

Posted by Corey Buchillon on Stack Overflow See other posts from Stack Overflow or by Corey Buchillon
Published on 2014-06-02T09:06:26Z Indexed on 2014/06/02 9:25 UTC
Read the original article Hit count: 217

Im not exactly adept at coding so Im probably missing something, but my view here is failing to refuse submission when one or both of the fields are empty. I have a feeling something isnt connected right to my template for the row and the view of the form

Form = Backbone.View.extend({ //form vie
  el: '.item-form',
  initialize: function(){
  }, 
  events: {
   'click #additem': 'addModel' 
  },
  addModel: function(itemName, price){ 
   // simple validation before adding to collection
   if (itemName !="" && price !="" ){
   var item = new Item({
     itemName: this.$("#item").val(),
     price: this.$("#price").val()}); 
     items.add(item);
     $("#message").html("Please wait; the task is being added.");
     item.save(null, {success:
     function (item, response,options) {
       item.id= item.attributes._id.$id;
       item.attributes.id = item.attributes._id.$id;
       new ItemsView({collection: items});
       $("#message").html("");
       }
     });
      this.$("#item").val(''); 
      this.$("#price").val('');
    } else {
    alert('Please fill in both fields');
    }
  }
});

and HTML

<table class="itemTable">
    <thead>
        <tr>
            <th>Item</th>
            <th>Price</th>
            <th></th>
        </tr>
    </thead>
    <tbody class="tableBody">    
      <script type="text/template" id="table-row">
        <td><%= itemName %></td> <td><%= price %></td> <td><button class="complete">Complete</button> <button class="remove">Remove</button></td> 
      </script>
    </tbody>
</table>

    <form class="item-form">
        <input type="text" name="item" id="item" placeholder="Item"/> <!-- goes to itemName in the template for the body -->
        <input type="text" name="price" id="price" placeholder="Price" /><!--goes to price in the template for the body -->
        <button type="button" id="additem">Add</button>
    </form>
    <div id="message"></div>

© Stack Overflow or respective owner

Related posts about JavaScript

Related posts about jQuery