3

我正在尝试这样做,以便您可以单击以使值从文本框中消失并重新出现(这很简单),但是文本框的值取决于从选择框中选择的内容。

这是javascript:

function changeValue(){
    var option=document.getElementById('filter').value;

    if(option=="1"){
            document.getElementById('field').value="Option 1";
    }
        else if(option=="2"){
            document.getElementById('field').value="Option 2";
        }

        else if(option=="3"){
            document.getElementById('field').value="Option 3";
        }

}

这是HTML:

<input class="input" type ='text' name="key" id ="field" value ="Option 1" />
<select name="filter" id="filter" onchange="changeValue();">
<option id="1" value="1">Option 1</option>
<option id="2" value="2">Option 2</option>
<option id="3" value="3">Option 3</option>
</select>

我面临的问题是,一旦单击输入框,它就会转到数字 1 值,而不是返回到其 javascript 确定的值。对此的任何帮助将不胜感激。

4

2 回答 2

1

在 js 文件的开头声明一个全局变量 x,在每个实例中为这个变量设置一个值。

var x = 0;

function changeValue(){
var option=document.getElementById('filter').value;

if(option=="1"){
        document.getElementById('field').value="Option 1";
        x = 'option 1';
}
    else if(option=="2"){
        document.getElementById('field').value="Option 2";
        x = 'option 2';
    }

    else if(option=="3"){
        document.getElementById('field').value="Option 3";
        x = 'option 3';
    }

}

创建一个名为 onblur 的新函数

function inputOnBlur() {
    document.getElementById('field').value = x;
}

html

<input onblur="inputOnBlur()" class="input" type ='text' name="key" id ="field" value ="Option 1" />

如果你想要一个 onfocus 功能来清除文本,你可以做类似的事情

function inputOnFocus() {
     document.getElementById('field').value = '';
}

希望这可以帮助!

于 2012-10-20T05:18:10.850 回答
0

它对我有用,看看下面的代码和演示,可能是你没有在脚本标签中包含你的脚本

<html>   
   <head>
        <script>
            function changeValue(){
            var option=document.getElementById('filter').value;

            if(option=="1"){
                    document.getElementById('field').value="Option 1";
            }
                else if(option=="2"){
                    document.getElementById('field').value="Option 2";
                }

                else if(option=="3"){
                    document.getElementById('field').value="Option 3";
                }

             }
           </script>
   </head>
   <body>

      <input class="input" type ='text' name="key" id ="field" value ="Option 1" />
      <select name="filter" id="filter" onchange="changeValue();">
        <option id="1" value="1">Option 1</option>
        <option id="2" value="2">Option 2</option>
        <option id="3" value="3">Option 3</option>
     </select>
  </body>
</html>

http://jsfiddle.net/d4uAh/

于 2012-10-20T05:25:40.380 回答