javascript - 无法让“onChange”在IE中的<select>标记</select>下工作

时间:2011-06-10 04:38:34

标签: javascript

<form name="form1">
Currency:<br><select name="currency" onchange='select()'>
      <option name ='usd'>USD</option>
      <option>Euro</option>
      <option name ='won'>Won</option>
    </select>
</form>

我无法执行onChange函数,但它在FF,opera和chrome中工作正常吗?

谁知道为什么?

4 个答案:

答案 0 :(得分:2)

<script language="javascript">
function TextValue(TestValue)
{
document.f2.samptext.value=TestValue;           
}
</script>
<form name="f2">
<select name="select" onchange="TextValue(this.value)">
<option value="First">First</option>
<option value="Second">Second</option>
</select>
<input type="text" name="samptext" id="samptext" />
</form>

答案 1 :(得分:1)

对我有用的是下面。但是这个

需要Jquery
<script language="javascript">
function TextValue()
{
var value =  $('#selectThis').val();          
}
</script>
<form name="f2">
<select name="select" onchange="TextValue() id="selectThis">
<option value="First">First</option>
<option value="Second">Second</option>
</select>
<input type="text" name="samptext" id="samptext" />
</form>

答案 2 :(得分:0)

请向我们展示select()函数,它是失败的。

工作示例:http://jsfiddle.net/mplungjan/fXacE/

请注意,我建议的脚本既不需要名称也不需要id,但如果你使用document.getElementById,你必须拥有一个ID,因为在2011年,只有IE会重载getElementById以获得一个命名元素

另外我想指出一些错误的语法 - 选项上没有名称。也可以在引号上保持一致

var currenCurrency = "";

function setCurrency(sel) {
  currentCurrency = sel.options[sel.selectedIndex].value; // or sel.value
  console.log(currentCurrency);
}
<form name="form1">
  Currency:<br>
  <select name="currency" id="currency" onchange="setCurrency(this)">
    <option value="">Please select</option>
    <option value="usd">USD</option>
    <option value="euro">Euro</option>
    <option value="won">Won</option>
  </select>
</form>

如果您不想要内联事件处理程序,那么在普通JS中您可以使用

var currentCurrency="";
window.onload=function() { // addEventListener is better but not supported by IE<v10
  document.getElementById("currency").onchange=function() {
    currentCurrency=this.options[this.selectedIndex].value; // or sel.value
  }
  document.getElementById("currency").onchange(); // set the current value
}

<强> 的jQuery

$("#currency option:selected").text()

$("#currency option:selected").val()$("#currency").val()

相同

答案 3 :(得分:0)

如果分配给onchange的函数未在IE中给出预期结果,则可能是监听器未能执行而不是未分派事件的结果。用一个简单的函数替换监听器,看看是否有效。

e.g。

<form name="form1">
  Currency:<br>
  <select name="currency" onchange='this.form.inp0.value = this.value'>
    <option value='usd'>USD</option>
    <option value="euro">Euro</option>
    <option value='kpw'>Won</option>
  </select>
  <input type="text" name="inp0">
</form>