2014-01-10 73 views
0

最近發生在我的網頁上,即使是jsp頁面元素已經在那裏,$("#elementId").change()不起作用,但$(document).on("change" "elementId"呢。看起來像頁面document正在懶洋洋地準備好,因此頁面元素上的直接事件處理程序不會被添加。任何提示?

ps:我說的元素不是動態生成的。

JSP

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%> 
<%@taglib prefix="core" uri="http://java.sun.com/jsp/jstl/core"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html lang="en"> 
<head> 
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.9.1.min.js"></script> 
<script type="text/javascript" src="${pageContext.request.contextPath}/js/receipt.js"></script> 
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/myCss.css" > 
<title>Generate Report</title> 
<meta http-equiv="content-type" content="text/html;charset=UTF-8" /> 
</head> 

<body> 
<form:form action="getReceipt.html" commandName="viewQuote"> 
<div class="main_div"> 
<div> 
    <table> 
     <tr><td valign="top" align="left"> 
       Res Number 
      </td> 
      <td valign="top" align="left" > 
       <input id="reservatnNo" type="text" name="reservatnNo" value=""> 
      </td> 
      </tr> 
     </table> 
</div> 

<div> 
    <table> 
     <tr><td> 
       <button id="generateReportButton" type="submit"> 
        Submit Form 
       </button> 
      </td> 
     </tr> 
    </table> 
</div> 

</div> 
</form:form> 
</body> 

的Javascript

$(document).ready(function() { 
    jQuery.ajaxSettings.traditional = true; 
}); 


$(document).on("change", "#reservatnNo", function(event) { 
//$('#reservatnNo').change(function(){ 
    alert("changeddd"); 
}); 
+0

你能在這裏分享你的代碼嗎? –

+1

動態加載'#elementId'。 –

+0

@RajaprabhuAravindasamy不,不像我說的那樣動態。我只是使用錨鏈接從以前的網頁調用網頁。 – user2918640

回答

2

確保$("#elementId").change()裏面$(document).ready()功能。否則$(「#elementId」)返回空的jQuery對象(因爲控件尚不存在),並且沒有事件被註冊。

或者外部ready方法,人們可以使用$(document).on()或舊的方法$(document).bind()來實現可靠的事件處理。

+2

你可以評論這個。 –

+0

我知道,把內部準備好是一種做法。但我很好奇幾天前他們是如何在外面準備工作的。 – user2918640

+0

如果你把它放在外面,那麼存在一個尚未在DOM中創建的控件註冊事件的風險 – Cris

相關問題