簡體   English   中英

獲取 jQuery function 以觸發 HTML 按鈕 OnClick

[英]Get jQuery function to trigger on HTML Button OnClick

我有以下 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="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>

我無法讓事件處理程序(在 jQuery 中)在用戶按下“創建帳戶”按鈕時觸發......

我立即看到三個問題:

  1. 您調用了兩次ready (當您將 function 傳遞給$()時,就像將 function 傳遞給$(document).ready()一樣)。 這在很大程度上是無害的,但完全沒有必要。

  2. 您在按鈕上的id屬性被撞到下一個; 瀏覽器可能會忽略它:

     <input type ="button" id = "sb"value="Create Account"/> <!-- ^^^^^^^^^ -->

    (如果需要,可以在=周圍留有空格,但將"sb"value可能行不通。)

  3. (可能偏離主題,可能不是):您似乎(從引用的代碼中)成為隱式全局恐怖的犧牲品。 您可能應該聲明您的getmessage變量。

所以:

<script>
   $(document).ready(function(){           
     // Removed the unnecessary `$(function() { ...` here and the matching closing bits at the end
     $("#sb").click(function(e){
        e.preventDefault();
        var getmessage = "Yes"; // <== Added `var`
        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>

<input type="button" id="sb" value="Create Account"/>

你html不好:

<p>><input type ="button" id = "sb" value="Create Account"/></p>

應該

<p><input type ="button" id="sb" value="Create Account"/></p>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM