function CreateNewMessage()
{
var receiver = $("#receiver").value;
var msg_body = ("#msg_body").value;
$("#submit").click(function(event) {
alert("it works!");
$.post("new/", {"receiver" : receiver, "msg_body" : msg_body});
});
}
(function() {
$(document).ready(function() {
CreateNewMessage();
});
})();
和HTML按钮
<input id="submit" value="Send" type="submit">
谁可以发现我的错误?
编辑:
因此,考虑到每个人的建议,这就是我的代码现在的样子。
function CreateNewMessage()
{
$("#submit").click(function(event) {
var receiver = $("#receiver").val();
var msg_body = $("#msg_body").val();
alert("it works!");
$.post("message/new/", {"receiver" : receiver, "msg_body" : msg_body});
});
}
$(document).ready(function() {
CreateNewMessage();
});
它仍未正确发送请求,并且控制台未记录错误。我尝试使用submit事件而不是上面代码中的click事件,但得到了相同的结果。
编辑2 所以代码正在jsFiddle上工作,但不在我的浏览器中。我真的很困惑
编辑3: 也许这与它有关...请注意,最初加载页面时,提交按钮不存在。它是在特定的javascript事件触发时生成的。
答案 0 :(得分:3)
您错过了$()
的{{1}}功能,它应该是这样的:
#msg_body
此外,您不需要将var receiver = $("#receiver")[0].value;
var msg_body = $("#msg_body")[0].value;
包装在函数中,您可以直接在脚本中调用它;您也可以直接将CreateNewMessage函数设置为处理程序,如下所示:
ready
答案 1 :(得分:1)
jQuery的值是.val()。另外,为什么不听提交活动?如果你不希望帖子通过,只需让它返回false。
答案 2 :(得分:0)
你错过了$ before(“#msg_body”),所以你的脚本会在那里崩溃。
function CreateNewMessage()
{
var receiver = $("#receiver").value;
var msg_body = $("#msg_body").value;
$("#submit").click(function(event) {
alert("it works!");
$.post("new/", {"receiver" : receiver, "msg_body" : msg_body});
});
}
(function() {
$(document).ready(function() {
CreateNewMessage();
});
})();
答案 3 :(得分:0)
试试这个:
function CreateNewMessage()
{
var receiver = $("#receiver").value;
var msg_body = $("#msg_body").value;
alert("it works!");
$.post("new/", {"receiver" : receiver, "msg_body" : msg_body});
}
$(function(){
$("#submit").click(function() {
CreateNewMessage();
});
});