JavaScript:使用JavaScript更改输入值?

时间:2014-12-01 12:57:29

标签: javascript

我正在尝试做一个非常简单的任务但由于某种原因我不能这样做。

基本上我使用if语句使用javascript更改输入字段的值,但它不起作用!

这是我的代码:

if (document.getElementById("colour").value == "171515"){
    document.getElementById("colour").value = "db0000";
}

if (document.getElementById("colour").value == "db0000"){
    document.getElementById("colour").value = "171515";
}

,HTML看起来像这样:

<input type="text" id="colour" name="colour" class="colour" value="171515"/>

所以我需要做的是:

我启动了一个页面,输入字段在我的页面上,其值为value="171515",然后我按一个按钮,这应该将输入字段的值更改为value="db0000",然后我再次按下按钮,它应该将输入按钮的值更改为value="171515",我需要根据需要多次执行相同的步骤。

目前,似乎它进入了一个循环动作,这就是为什么它不会改变输入字段的值! (如果我错了,请纠正我。)

任何帮助将不胜感激。

由于

编辑:

上面的javascript代码执行方式如下:

$(params.addPplTrigger).bind('click', function(e){
                    e.preventDefault();

///////// THE CODE ABOBE WILL GO HERE///////////

}

2 个答案:

答案 0 :(得分:1)

您只是错过了else

if (document.getElementById("colour").value == "171515"){
    document.getElementById("colour").value = "db0000";
}

else if (document.getElementById("colour").value == "db0000"){
    document.getElementById("colour").value = "171515";
}

原始代码中会发生什么

案例171515:

  • 首先,如果条件评估为真,因为值为171515
  • 值变为db0000
  • 第二,如果条件再次评估为真,因为值现在是db0000
  • 值变回171515

案例db0000:

  • 首先如果条件得到的评估结果为false,因为该值不是171515
  • 值保持不变
  • 如果条件得到的结果为true,则因为值为db0000
  • 值变为171515

因此,在这两种情况下,你都会以171515结束。

答案 1 :(得分:0)

因为你在做:

if (document.getElementById("colour").value == "171515"){
    document.getElementById("colour").value = "db0000";
}

然后反转

if (document.getElementById("colour").value == "db0000"){
    document.getElementById("colour").value = "171515";
}

因此您无法看到更改。使用else instead of second if.

if (document.getElementById("colour").value == "171515"){
    document.getElementById("colour").value = "db0000";
}else{
    document.getElementById("colour").value = "171515";
}