Javascript 单击HTML按钮时获取要触发的jQuery函数
我有以下HTML/JQuery:Javascript 单击HTML按钮时获取要触发的jQuery函数,javascript,jquery,html,events,button,Javascript,Jquery,Html,Events,Button,我有以下HTML/JQuery: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Login</title>
<script src="jQuery.js"></script>
<script>
$(document).ready(function(){
$(function(){
$("#sb").click(function(e){
e.preventDefault();
getmessage = "Yes";
getmessage = encodeURIComponent(getmessage);//url encodes data
$.ajax({
type: "POST",
url: "get_login.php",
data: {'getmessage': getmessage},
dataType: "json",
success: function(data) {
$("#message_ajax").html("<div class='successMessage'>" + data.message +"</div>");
}
});
});
});
});
</script>
</head>
<body>
<h1>Login</h1>
<p>Please enter your e-mail and password</p>
<form name = "loginform" action = "http://dev.speechlink.co.uk/David/get_login.php" method = "post">
<p>E-mail<input name = "username" type="text" size="25"/><label id ="emailStatus"></label></p>
<p>Password<input name = "password" type="text" size="25"/><label id ="passwordStatus"></label></p>
<p><input type="hidden" name="usertype" value = "SupportStaff" /></p>
<p>><input type ="button" id = "sb"value="Create Account"/></p>
</form>
<div id = "message_ajax"></div>
</body>
</html>
登录
$(文档).ready(函数(){
$(函数(){
$(“#sb”)。点击(功能(e){
e、 预防默认值();
getmessage=“是”;
getmessage=encodeURIComponent(getmessage);//url编码数据
$.ajax({
类型:“POST”,
url:“get_login.php”,
数据:{'getmessage':getmessage},
数据类型:“json”,
成功:功能(数据){
$(“#message_ajax”).html(“+data.message+”);
}
});
});
});
});
登录
请输入您的电子邮件和密码
电子邮件
密码
>
我无法让事件处理程序(在jQuery中)在用户按下“创建帐户”按钮时触发…您的html不好:
应该是
你的html不好:
应该是
我马上就看到三个问题:
ready
两次(当您将函数传递到$()
中时,这就像将函数传递到$(document.ready()
)中一样)。这基本上是无害的,但完全没有必要id
属性与下一个属性对齐;浏览器可能会忽略它:
<input type ="button" id = "sb"value="Create Account"/>
<!-- ^^^^^^^^^ -->
及
我马上就看到三个问题:
ready
两次(当您将函数传递到$()
中时,这就像将函数传递到$(document.ready()
)中一样)。这基本上是无害的,但完全没有必要id
属性与下一个属性对齐;浏览器可能会忽略它:
<input type ="button" id = "sb"value="Create Account"/>
<!-- ^^^^^^^^^ -->
及
您确实应该从属性中删除所有这些不规则的空格。还有$(函数(){
在.ready
中是多余的,因为它做的是相同的事情。知道当你点击按钮时实际发生了什么将是有用的;没有明显发生和没有实际发生之间有很大的区别。你有没有收到任何浏览器错误?你从AJAX调用中得到响应吗?事件是否ally fire?按钮的HTML似乎在某个地方有多余的空格,并且“sb”value=“Create Account”之间缺少空格。可能就是这样。还有,为什么要将$(function(){嵌入$(document)。准备好了吗?您的代码只在DOM就绪时才被调用。您真的应该从属性中删除所有不规则的空格。还有$(功能(){
在.ready
中是多余的,因为它做的是相同的事情。知道当你点击按钮时实际发生了什么将是有用的;没有明显发生和没有实际发生之间有很大的区别。你有没有收到任何浏览器错误?你从AJAX调用中得到响应吗?事件是否ally fire?按钮的HTML似乎在某处有多余的空格,并且“sb”value=“Create Account”之间缺少空格。可能就是这样。另外,为什么要将$(function(){嵌入$(document)中.ready…您的代码只在DOM ready上被调用。我在IE9、FF5和Chrome 12中测试了没有空格的id和value属性,这三种浏览器都工作得很好。可能这些浏览器的早期版本不工作,但我想这不是他所写内容的唯一问题。@Anthony:我想不是。我似乎重新设计了几年前,当我在一些代码中看到它时,它也能正常工作。我在IE9、FF5和Chrome 12中测试了id和value属性,但没有空格。这三种浏览器都能正常工作。可能这些浏览器的早期版本不能工作,但我想这不是他所写内容的唯一问题。@Anthony:我想不会。我似乎记得几年前在一些代码中看到它时,它也工作得很好。
<input type="button" id="sb" value="Create Account"/>