【问题标题】:Input tag won't work with JQuery Ajax properly输入标签不能正确使用 JQuery Ajax
【发布时间】:2019-09-09 13:50:19
【问题描述】:

我编写了一个代码,当客户端在输入中键入内容时,它会将数据发送到 jsp 文件进行评估,如果数据等于“James”,它会说“Hello James”。问题是输入标签不会显示您的输入,并且只需要 1 个输入

     jQuery w/ input
<fieldset>
<form style="padding:15px;">
<label for=name>Enter Name:</label>
<input type="text" name="name" id="name">
</form>
</fieldset>

<div id="result"></div>

<script>
$(document).ready(function() {
      $("input").keypress(function(event) {
        event.preventDefault(); 
        var name = $("#name").val();
        var send = {
          name: name 
        };

        $.ajax({
          type: "POST",
          url: "process2.jsp",
          data: send,
          success: function(data) {
            $("#result").html(data);
          }
        })
      });
    });


</script>
   -----------------------

    JSP FILE:
   <%

    String name = request.getParameter("name");

    if(name.equals("James")){
out.println("Hello James");
     } else {
out.println("Hello User");
    }

    %>

【问题讨论】:

  • input tag won't display your input, and only takes 1 input.. 是什么意思?你能详细说明一下吗?尝试使用keyup 而不是keypress 事件。
  • 表示输入文本框不会显示超过1个字符。我也会确保使用更多的按键
  • 尝试将$("input").keypress(function(event) 更改为$("input").keyup(function(event) 并检查是否有效。
  • 是的,它运作良好:)

标签: java jquery ajax jsp


【解决方案1】:

您的代码存在的问题是您错误地分配了 name 变量。而不是写作。

        var name = $("#name").val();

你应该写

        var name = event.target.value; 

否则,您每次按键都会一遍又一遍地分配相同的值,从而无法键入多个字符。

【讨论】:

  • 另外,您可能需要考虑从代码中删除 event.preventDefault()。你为什么把它放在那里?
  • 阻止默认值来自以前的版本。但无论如何感谢您的帮助
  • 我的回答是否解决了您的问题?如果确实如此,请善待并将其标记为已接受的答案。否则请告诉我!
  • 是的,我刚刚做到了。 stackoverflow 的新手,所以不知道存在这样的东西
猜你喜欢
  • 1970-01-01
  • 2020-01-05
  • 1970-01-01
  • 2019-01-12
  • 1970-01-01
  • 2016-11-27
  • 2017-12-02
  • 1970-01-01
  • 2020-06-25
相关资源
最近更新 更多