繁体   English   中英

我可以在document.getelementbyID内传递多个ID吗?

[英]Can I pass multiple Id's inside a document.getelementbyID?

我有一个具有45个下拉列表的表单,并且我使用底部代码进行验证。

如何仅使用底部代码的一个功能对我的所有45个下拉列表进行验证?

这是功能

function Validate()
{
var e = document.getElementById("dropdownlistone");
var strUser = e.options[e.selectedIndex].value;
var strUser1 = e.options[e.selectedIndex].text;
if(strUser==0)
{
alert("Please select a user");
}
}
----- HTML CODE 

<select id="dropdownlistone">
<option value="0">Select</option>
<option value="1">test1</option>
<option value="2">test2</option>
<option value="3">test3</option>
</select>  
<input type="button" onClick="Validate()" value="select"/>

这是您需要使用类的情况。 然后使用querySelectorAll方法:

function Validate() {
    var e = document.querySelectorAll(".dropdownlistone");
    for (var i = 0; i < e.length; i++) {
        var strUser = e[i].options[e[i].selectedIndex].value;
        var strUser1 = e[i].options[e[i].selectedIndex].text;
        if (strUser == 0) {
            alert("Please select a user");
            return;
        }   
    }
}

演示: http//jsfiddle.net/cwNaH/

这是一个带有更多用户友好验证消息的示例: http : //jsfiddle.net/cwNaH/1/

您可以将DOM方法getElementsByTagName用于select框,并将data-attr to "validate"设置为data-attr to "validate" ,如果您不希望对其进行验证,则只需不添加上述属性即可。

例如 的HTML

<select id="sel1" data-attr="validate">
  <option value="0">Select</option>
  <option value="1">test1</option>
  <option value="2">test2</option>
  <option value="3">test3</option>
</select> 

<select id="sel2" data-attr="validate">
  <option value="0">Select</option>
  <option value="1">test1</option>
  <option value="2">test2</option>
  <option value="3">test3</option>
</select>

的JavaScript

function validate()
{
  var ele = document.getElementsByTagName("select");
  for(var i=0;i<ele.length;i++)
  {
     if(ele.getAttribute("data-attr") && ele.getAttribute("data-attr")=='validate')
     {
          // you have all 47 select boxes whoose data-attr is validate
          // each select box will be in ele[i]
          var value= ele[i].options[ele[i].selectedIndex].value;
          var text= ele[i].options[ele[i].selectedIndex].text;

          alert( value+ " : " + text);
     }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM