【问题标题】:create a condition for <input> to have value before an event happens jQuery在事件发生之前为 <input> 创建一个具有值的条件 jQuery
【发布时间】:2013-10-01 14:32:06
【问题描述】:

我创建了一个条件,当一个按钮被点击时,它会从&lt;input id="id" class="req"&gt; 框中获取我的ID 的值,并显示该ID 的关联名称并将其放入姓名&lt;input id="name" class="req"&gt;邮箱。

所以当我输入1 时,我会得到BOB。很基础。

我还有一个条件,即两个&lt;input&gt; 框都应该有值,然后才会出现特定的&lt;div&gt;。所以默认情况下这个&lt;div&gt;隐藏的

我苦苦挣扎的部分是,每当我点击按钮时,我都会得到名字,即使我已经成功填充了我的 2 个&lt;input&gt; 框,&lt;div&gt; 仍然不会出现。

这是我的代码。

//<input> conditions

$('input.req').on("keyup keypress change", function () {
  $('input.req').each(function() { 
    if($(this).val() != "") {
        $("#content").show();
    }
    else {
        $("#content").hide();
    }
  });
});

同样,如果你输入 1,你会得到 bob。但&lt;div&gt; 不会出现。但如果您手动填写文本框,&lt;div&gt; 将出现。

我想要发生的是,输入我的ID,单击按钮,获取name,将name 放入我的name &lt;input&gt; 框并让 &lt;div&gt; 出现。

【问题讨论】:

  • 你在使用$.each吗?有很多 input.req。也请发布 html。
  • 使用 jQuery 更改输入的值并不总是会触发更改事件。 stackoverflow.com/questions/4672505/…
  • @bhb 我有 3 个 但为了简单起见选择了 2 个。我使用了每一个,几乎所有我读过的东西,它们通常引用each 来检查 each 元素。不确定我是否正确地遵循它..
  • @lemieuxster 感谢您提供此链接!这解决了我的问题。我只是添加了.change();,它就起作用了。

标签: javascript jquery html


【解决方案1】:

您还应该在 Ajax 成功处理程序中检查您的输入框,因为目前您只在关键事件上执行此操作:

$.ajax({
   url: //url,
   success: function() {
      $('input.req').each(function() { 
         if($(this).val() != "") {
            $("#content").show();
         }
         else {
            $("#content").hide();
         }
      });
   }    
})

【讨论】:

    【解决方案2】:

    您的问题是每次输入更改时都会抛出每个输入。 只需删除$('input.req').each(function() {,一切都会好起来的。

    【讨论】:

    • 为什么放-1?就是那个。当您的输入更改时,您只需调用显示/隐藏内容的代码。目前,您的代码将通过 throw 每个 input.req 并且由于最后一个 input.req 为空,因此内容被隐藏。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 2013-05-01
    • 2021-09-25
    • 2011-09-03
    • 2020-06-13
    • 1970-01-01
    相关资源
    最近更新 更多