簡體   English   中英

jQuery.get()的奇怪問題

[英]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>

更改您的代碼:

  • 在表單中添加了一個ID。
  • 使提交按鈕成為一個submit按鈕,而不只是一個button
  • 將代碼放在$(document).ready塊中。
  • 代碼在提交form時運行,而不是在單擊button時運行。

希望這會有所幫助,桑德羅

暫無
暫無

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

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