有没有办法用基本的JS DOM做到这一点?

时间:2010-04-20 14:43:13

标签: javascript html forms

我需要根据用户在单独的下拉表单中的选择应用/删除到输入字段 - 但我无法弄清楚如何定位输入的类。

我需要在此输入中添加/删除'pageRequired'类:

<input  type="text" title="Company Required" name="customfields-tf-2-tf" class="inputclass pageRequired textInput" id="customfields-tf-2-tf" />

当用户从下拉字段中选择两个选项之一时。例如:

<select class="dropdown" name="customfields-s-1-s" id="customfields-s-1-s" >
<option value="Owner"<?php if(in_array("Owner",$temp_values)) { ?> selected='selected'<?php } ?>> Owner</option>
<option value="Broker"<?php if(in_array("Broker",$temp_values)) { ?> selected='selected'<?php } ?>> Broker</option>
</select>

如果用户选择代理而不是我想将pageRequired类添加到第一个输入字段,并在用户选择所有者时将其删除。

编辑 - 好的,这是我正在使用的代码:

<script type="text/javascript">
function changeClass(myDropdown) {
   if (#customfields-s-1-s.selectedIndex == 1 ) {
       $('#customfields-tf-2-tf').addClass('pageRequired');
   }
   else {
      $('#customfields-tf-2-tf').removeClass('pageRequired');
   }
}
</script>

2 个答案:

答案 0 :(得分:3)

如果您不想使用JQuery,您也可以使用纯JavaScript:

<script>
function changeClass(obj) {
  var input = document.getElementById("customfields-tf-2-tf");
  if(obj.value == 'Broker') {
    input.className = input.className.replace('pageRequired','');
  }
  else if(obj.value == 'Owner') {
    input.className = input.className + ' pageRequired';
  }
}
</script>

<input title="Company Required" id="customfields-tf-2-tf" class="inputclass pageRequired textInput" type="text">
<br>
<select name="matt" onchange="changeClass(this)">
<option value="Owner">Owner</option>
<option value="Broker">Broker</option>
</select>

答案 1 :(得分:1)

这可以使用jquery非常简单地完成:

只需将onchange事件添加到您的下拉列表中,然后调用一个删除该类或根据下拉选择添加它的函数

<select class="dropdown" name="customfields-s-1-s" id="customfields-s-1-s" onchange="javascript:changeClass(this);" >

function changeClass(myDropdown) {
   if (myDropdown.selectedIndex == 1 ) {
       $('#customfields-tf-2-tf').addClass('pageRequired');
   }
   else {
      $('#customfields-tf-2-tf').removeClass('pageRequired');
   }
}

以下是使用链接:

http://api.jquery.com/addClass/

http://api.jquery.com/removeClass/