Я прочитал несколько статей, в которых упоминаются флажки, всегда возвращающие ложное состояние, но ничего не нашли о моей собственной проблеме.checkbox allways return false
Итак, вот сценарий:
<script type="text/javascript">
function update_contact(id, name) {
alert("idCont : " + id + "\n nameCKB : " + name + "\n state : "
+ $(this).attr('checked'));
var a = location.pathname.substring(1).split('/')
$.ajax({
url : '@Url.Action("update_contact")',
type : 'POST',
data : {
name : name,
isChecked : $(this).is(':checked'),
idOpp : a[2],
idCont : id
},
success : function(result) {
}
});
};
</script>
А вот код в CheckBox в:
@If mail = False Then
@<input type="checkbox" name="mailed" id="mailed" class="mailed" onclick="update_contact(@item.idContact.toString() , 'mailed')" />
Else
@<input type="checkbox" name="mailed" id="mailed" class="mailed" onclick="update_contact(@item.idContact.toString() , 'mailed')" checked="checked" />
End If
А вот код, сгенерированный сервером:
<input name="mailed" id="mailed" class="mailed" onclick="update_contact(1 , 'mailed')" type="checkbox">
В В начале я использовал Html-помощник. Это возвращалось так:
<input id="mailed" name="mailed" onclick="update_contact(1 ,'mailed')" value="true" type="checkbox">
<input name="mailed" value="false" type="hidden">
Я, хотя это было из-за второго ввода, что он всегда возвращал ложное состояние.
(извините, если мой английский плохо, я не носитель английского языка)
Он работает очень хорошо! thx много всех. Это решение, которое я выбираю, потому что я смог его понять. –
@EliasVanOotegem - часть '$ .ajax()' не имеет к этому никакого отношения. В первой половине моего ответа я передаю 'this' из встроенного обработчика, поэтому параметр' cb' будет отмечен. Альтернатива, которую я дал во второй половине моего ответа, использует jQuery для создания обработчика кликов, поэтому jQuery установит 'this' на элемент clicked. – nnnnnn
aw ... poppycock, должен был внимательно посмотреть на ваш ответ ... извините –