[英]Strange issue with jQuery.get()
我的代碼有一個奇怪的行為:
<script type="text/javascript">
function get()
{
alert("gggg");
jQuery.get (
"http://localhost:8080/c/portal/json_service",
{
serviceClassName: "com.liferay.test.service.TrabajadorServiceUtil",
serviceMethodName: "findByName",
servletContextName: "TrabajadorPlugin-portlet",
serviceParameters: "[param]",
param : document.getElementById("nombre")
}
);
}
</script>
<div>
<form>
<input type="text" id="nombre" value="<%=searching%>"/>
<input type="button" value="Submit" onClick="javascript:get()"/>
</form>
</div>
當按下“提交”按鈕時,Liferay門戶將被阻止。 顯示帶有消息“ gggg”的彈出窗口,但是單擊確定后,頁面被鎖定。
如果我刪除“ param:document.getElementById(“ nombre”)“行,則不會阻塞。
誰能解釋我的錯誤在哪里或這種行為的原因?
提前致謝,
拉法
問題在於,您試圖將整個DOM元素作為jQuery不會喜歡的param
的值進行傳遞。 哪種類型的元素具有ID nombre
,並且您想要該元素的什么屬性? 如果是某種輸入,則可能需要value
屬性,因此您可以執行以下操作:
param : document.getElementById("nombre").value
更新的答案:
再多考慮一下,您可能應該完全以不同的方式來做。 當用戶單擊“提交”按鈕時,您正在發送數據,但請記住,如果用戶在輸入文本框中鍵入內容時按下回車鍵,則表單將提交,但您的代碼將無法捕獲。
一個更健壯的解決方案將改為以這種方式進行:
<div>
<form id="nombre_search">
<input type="text" id="nombre" value="<%=searching%>"/>
<input type="submit" value="Submit"/>
</form>
</div>
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
$("#nombre_search").submit(function(){
$.get("http://localhost:8080/c/portal/json_service", {
serviceClassName: "com.liferay.test.service.TrabajadorServiceUtil",
serviceMethodName: "findByName",
servletContextName: "TrabajadorPlugin-portlet",
serviceParameters: "[param]",
param : $("#nombre").val()
});
return false;
});
});
</script>
更改您的代碼:
submit
按鈕,而不只是一個button
。 $(document).ready
塊中。 form
時運行,而不是在單擊button
時運行。 希望這會有所幫助,桑德羅
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.