是否有可验证的方法来使用HTML标签和输入元素以及没有id的输入?

是否有可验证的方法来使用HTML标签和输入元素以及没有id的输入?,html,validation,input,label,Html,Validation,Input,Label,我正在为一个应用程序使用jquerymobile,它在每个页面上都有一个登录弹出窗口。问题是,Jquery Mobile在DOM中总是至少有2个页面,因此我在DOM中会有两个弹出窗口和登录表单,迫使我找到避免重复id属性的方法 我通过省略登录表单输入上的id属性来解决这个问题,所以我这样做: <label for="email" class="inFieldLabel">#tx_email#</label> <input autocomplete="off" t

我正在为一个应用程序使用
jquerymobile
,它在每个页面上都有一个登录弹出窗口。问题是,Jquery Mobile在DOM中总是至少有2个页面,因此我在DOM中会有两个弹出窗口和登录表单,迫使我找到避免重复id属性的方法

我通过省略登录表单输入上的
id
属性来解决这个问题,所以我这样做:

 <label for="email" class="inFieldLabel">#tx_email#</label>
 <input autocomplete="off" type="email" name="email" value="#XMLFormat( lostPass.email )#" class="required">
问题
有没有一种方法可以不使用
id
属性而通过验证?解决办法是什么

注意:我不能使用全局登录弹出窗口,因为jquerymobile目前不支持它,所以我在每个页面上都有一个弹出窗口


感谢您的见解

假设有两件事:您不会使用ID来设置表单样式,并且在每个弹出窗口周围都有一个表单标签。这段代码将在表单元素的id/FORs中附加一个随机数。您可能还需要将此数字传递给验证例程

jQuery("FORM").each(function()
{
  var randomNum = Math.random()*1000;
  var jForm = jQuery(this);
  jForm.find("INPUT").each(function()
  {
    this.id+=randomNum;        
  });
  jForm.find("LABEL").each(function()
  {
    jQuery(this).attr("for",jQuery(this).attr("for")+randomNum);
  });
});

...

validateForm(form, randomNum);
这是保持表单上ID唯一的一种方法

我猜我假设你也在使用验证插件。如果有任何帮助,您可以对表单/元素使用多个非唯一ID,只要您通过验证唯一选择器,如“#第1页#弹出表单#myInput”或“#第2页#弹出表单#myInput”

更多编辑:

等等,你在找这个吗?可以使用forms对象通过名称而不是id引用窗体及其控件

<form name="formNameAttribute">
  <input name="inputNameAttribute" value="some value" />
</form>

<script>
var inputValue=document.forms["formNameAttribute"]["inputNameAttribute"].value;
</script>

var inputValue=document.forms[“formNameAttribute”][“inputNameAttribute”].value;

将标签应用的表单控件放入标签中

<label> text <input> </label>
文本

答案并非如此,尽管您不必使用带有ID的标签。您也可以简单地用它包装标签的tgt,以获得相同的效果。例如,某些文本的行为类似于rb。但64000个问题似乎是为什么不使用ID?尽管这是一个很好的观点。让我看看这在JQM.hm中是否有效。这将是一个选项,但肯定会增加复杂性:-)我正在尝试看看是否可以按照第一条评论做“包装工作:-)事实上,包装工作是一个很好的解决方案,如果这就是你所需要的。是的,但完全打破了我的css。。。仍在尝试更新。如果你想给我一个答案,请给我一点时间发布。我的输入和标签被很好地放置在一个列表项中。比如说35%/65%。如果我现在将输入包装在35%标签内,此外观。。。不好:-)是的。我就是这样做的。我不得不重写一些Jquery移动定制CSS,但这就是我现在要做的。谢谢
<label> text <input> </label>