How to modify an HTML Select when the name is an array using Javascript - Stack Overflow

I have two html select objects named with the same name (they are arrays with different indexes).What I

I have two html select objects named with the same name (they are arrays with different indexes).

What I am trying to do, is if "off" is selected from the category[0] select element, I would like to disable the category[1] element. I have been trying to use document.getElementsByName() but am having no luck figuring out how to specifically target the category[1] array. See below for example code.

<select name='category[0]'>
    <option value='0'>off</option>
    <option value='1'>on</option>
</select>

<select name='category[1]'></select>

My question is how can I modify the properties of an HTML object that is an array? I understand I could do this easily using ID's but I would like to learn how to do this using an array.

Thanks

I have two html select objects named with the same name (they are arrays with different indexes).

What I am trying to do, is if "off" is selected from the category[0] select element, I would like to disable the category[1] element. I have been trying to use document.getElementsByName() but am having no luck figuring out how to specifically target the category[1] array. See below for example code.

<select name='category[0]'>
    <option value='0'>off</option>
    <option value='1'>on</option>
</select>

<select name='category[1]'></select>

My question is how can I modify the properties of an HTML object that is an array? I understand I could do this easily using ID's but I would like to learn how to do this using an array.

Thanks

Share Improve this question asked Aug 27, 2009 at 8:10 justinljustinl 10.5k22 gold badges71 silver badges90 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 3

Untested:

<select name='category[0]'>
    <option value='0'>off</option>
    <option value='1'>on</option>
</select>

<select name='category[1]'></select>

<script>
var selects = document.getElementsByTagName('select');

for ( var i = 0, len = selects.length; i<l; ++i ) {
    if ( selects[i].name == 'category[1]' ) {
        // operate on selects[i];
        // you can also rely on getAttribute('name')
    }
}

</script>
<select name='category[0]' onChange="disCat(this.value);">
    <option value='0'>off</option>
    <option value='1'>on</option>
</select>
<script type="text/javascript">
function disCat(val){
  if(val!="0") return;
  var sels=document.getElementsByTagName("select");
  for(i=0;i<sels.length;i++)
  {
    if(sels[i].getAttribute('name')=='category[1]') sels[i].disabled=true;
  }
}
</script>

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1742316511a4420946.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信