【问题标题】:Multiple Input fields with same id具有相同 id 的多个输入字段
【发布时间】:2012-09-18 10:24:14
【问题描述】:

我正在使用输入字段从 php 代码呈现数据,但是当我从数据库中检索数据时,输入字段被复制并且我已经为其分配了一个 id 和一个类值现在我面临的问题是,如果我使用 id 它只显示我只有第一个值。如果我使用类它开始迭代它并完成直到每个字段并在输入字段为空的地方显示为空

Jquery 代码是这个

$('.submit-button').on('click',function(){
    $('.datecontrol').each(function(){
        alert($(this).val());
});

我的整个 html 都提供了here

【问题讨论】:

  • 你想做什么?每个元素只能有一个 ID。
  • 您不应该在循环中分配静态 ID - ID 背后的整个想法是它们是唯一的。在循环中添加一个计数器变量并将其附加到您的 ID,或使用检索到的数据库值之一。如果您在班级而不是ID上调用日期选择器,它是否不起作用?
  • 日期选择器在类中工作正常,但主要问题是我无法在第二个或第三个文本字段中生成从日历中选择的值
  • @Andreas 我已经在我的问题中提供了整个文件,你可以检查一下!!
  • @fahad 你想获取 .datecontrol 字段中的值吗??

标签: php jquery


【解决方案1】:

您的代码有一些语法错误,所以如果您只想显示带值的字段

    $('.submit-button').on('click',function(){
       $('.datecontrol').each(function(){
        if($(this).val()!='') // check if field is empty
           alert($(this).val());
       }); //-->missing closing brackets
   });

【讨论】:

    【解决方案2】:

    我不太了解您的问题,但我认为您正在寻找的答案 - 或者您应该考虑的问题如下:

    在 JQuery 中,您可以选择带有类示例的 ID,例如。

    $("#yourid.yourclass");
    

    这意味着您可以保留唯一的 ID(这对工作流程很重要),并且您仍然可以为组分配类!

    所以示例元素看起来像这样

    <div id="mynumber" class="red"></div>
    <script>
    $("#mynumber.red").on("click", function()
    {
    alert('I was clicked');
    });</script>
    

    对于查找空项目,您可以使用 .length()

    作为附加信息:要在使用相同 id 的同时验证您的文档,不要使用 html 标签 id="" 而是使用 data-id="" 作为数据元素无论如何都是有效的。

    【讨论】:

    • 不要使用 .live,因为它已被弃用,.on() 是您应该使用的新方法。
    【解决方案3】:

    首先,你不能对多个元素使用相同的id,如果你想让jquery代码找到元素,它只会找到最后一个。

    更好的是,你使用类,或者你可以使用标题标签来使用多个元素使用.each()

    【讨论】:

      【解决方案4】:

      首先,根据标题,使用具有相同 id 的多个字段不是一个好主意。它会产生问题是 CSS、Scripting 等。

      接下来,如果您的问题仅是选择特定数量的字段,则为字段分配不同的类以表示特定组。

      【讨论】:

      • 好吧@Starx 请检查这个链接然后你明白你我使用了同一个类pastie.org/4746295
      • @fahad,对不起,我不是免费的 ATM 来检查你的代码,但我的意思是,你可以为不同的组分配额外的课程。
      猜你喜欢
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-09
      • 1970-01-01
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多