0

I have the following post request. It's sending all other fields successfully. However, whatever I try it simply does not pick up the check box. I've tested the id with a click event and alert and it's definitely referencing the checkbox ok.

$.post("http://" + window.location.host + "/exec_messages_send.php",
{
    receiver : $("#messages_receiver").val(),
    title : $("#messages_title").val(),
    body : $("#wysi_textarea_message_body").val(),
    urgent : $("#messages_urgent").checked
}

This is the html, rendered with php:

echo "<input type=\"checkbox\" id=\"messages_urgent\"> Mark as <span class=\"label label-important\">Urgent</span>";

How do I get the value of the checkbox? I've already tried .val() and .attr('checked') and .checked and a few other methods...

4

6 回答 6

3

利用 -

urgent : $("#messages_urgent")[0].checked

或者

urgent : $("#messages_urgent").is(':checked');
于 2013-06-17T12:34:21.897 回答
0

你试过吗

$("#messages_urgent").is(':checked').val();

或者你可以直接喜欢

$("#messages_urgent:checked").val();

并为复选框赋予一些价值

echo "<input type=\"checkbox\" value=\"my_value\" id=\"messages_urgent\"> Mark as <span class=\"label label-important\">Urgent</span>";
于 2013-06-17T12:33:43.903 回答
0

不确定我是否理解您的问题,但也许只是使用 .prop():

urgent : $("#messages_urgent").prop('checked')
于 2013-06-17T12:34:32.783 回答
0

我假设您想以某种方式序列化表单。在您的示例中,您选择 JS 中的字段,但除非您需要动态更改数据的来源,否则通过使用提交表单的默认行为,您将更容易获得相同的结果。

输入元素上似乎没有name属性。默认情况下忽略不带的输入name,带有 value 的复选框也是如此false。但是您可以通过阅读其他答案中所示的检查属性来解决它。

通常,如果未选中复选框,则序列化表单也会忽略复选框。例如。如何为未选中的复选框序列化数组?

于 2013-06-17T12:37:06.470 回答
0

$('#messages_urgent').is(':checked')会做.. :-)

于 2013-06-17T12:37:49.773 回答
0

尝试这个

$("#messages_urgent").is(':checked'); // it returns true of false
于 2013-06-17T12:38:50.713 回答