2016-04-28 18 views
1

Ajax-Aufruf wird immer für IsHalfDay-Kontrollkästchen übergeben, jeder andere Wert, der übergeben wird, ist abgesehen von diesem korrekt. Was könnte der Grund sein?AJAX-Aufruf, der für Checkbox-Daten immer wahr ist

UpdateDays: function() { 
    $.ajax({ 
     url: $("#numberOfDays").data("url"), 
     data: { 
      startDate: $("input[name=StartDate]").val(), 
      endDate: $("input[name=EndDate]").val(), 
      employeeId: $("#holiday-editor").data("employee"), 
      isHalfDay: $("input[name=HalfDay]").val() 
     }, 
     method: "POST" 
    }).success(function (response) { 
     $("#numberOfDays").html(response); 
     $("#Days").val(response); 
    }); 
+0

bitte auch die entsprechenden html anzeigen –

+0

Weil es 2 Eingaben gibt, die von '@ Html.CheckBoxFor()' sowohl mit 'name =" HalfDay "', eins mit 'value =" true "' und eins mit 'value = erzeugt werden "falsch" '. –

+0

Verwenden Sie 'isHalfDay: $ (" # HalfDay "). Is (": checked ");' –

Antwort

2

Es ist, weil das Kontrollkästchen immer einen Wert hat. Wenn Sie wissen wollen, ob es aktiviert ist oder nicht prop('checked') verwenden, wie folgt aus:

isHalfDay: $("input[name=HalfDay]").prop('checked') 

Beachten Sie auch, dass es keine success() Methode auf das Versprechen von der $.ajax Aufruf zurückgegeben - ich glaube, meinen Sie done() statt.

Verwandte Themen