2011-12-14 72 views
0

我怎么能写这个在JavaScript或jQuery的:
当我第一次onoff VAR在change功能得到值offoff按钮变为一个名为on按钮,按下按钮;
现在,当我按on按钮时,变量onoff获取值on,并且该按钮再次变为off按钮。如何更改按钮名称和变量值?

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="UTF-8"> 
<script type="text/javascript" src="jquery-min.js"></script> 
<script type="text/javascript"> 
    function change(inputId) { 
     /* ... do something with inputId ... */ 
     var onoff = 'off'; 
     console.log(onoff); 
    } 
</script> 
</head> 
<body> 
<form> 
    <table> 
     <tr> 
      <td>one:</td><td><input name="one" id="one" /></td> 
      <td><input type="button" id="b_one" value="off" onclick="change('one')"></td> 
     </tr> 
     <tr> 
      <td>two:</td><td><input name="two" id="two" /></td> 
      <td><input type="button" id="b_two" value="off" onclick="change('two')"></td> 
     </tr> 
    </table> 
    <br /><br /><input type="submit" value="ok"/></div><br /> 
</form> 
</body> 
</html> 

回答

1

这是在“纯”的JavaScript。您将检索给定输入的按钮元素,并根据以前的值更改其值。

function change(inputId) { 
    var button = document.getElementById('b_' + inputId); 
    button.value = button.value === 'off' ? 'on' : 'off'; 
} 

HERE是代码。

您的change()函数将不起作用,因为每次调用函数时都会将“off”分配给onoff变量。如果要使用它,必须将变量定义移动到change()函数之外。

1

我不确定这是对价值的有效使用。然而,这样的事情:

function Change(id) { 
    if($("#"+id).val() == "on") { 
     // code for on 
     $("#"+id).val("off"); //switch value 
    } 
    else { 
     // code for off 
     $("#"+id).val("on"); //switch value 
    } 
} 
1

您可以设置事件处理程序无需添加内嵌代码:

$('input[type="button"]').on('click', function() { 
    var onoff = this.value; 

    //this sets the value of the input to its current opposite 
    this.value = (this.value == 'off') ? 'on' : 'off'; 
}); 

这里是一个演示:http://jsfiddle.net/df4pu/

这也将事件处理程序每​​type=button输入,所以你可以减少重复的代码。

请注意,.on()是jQuery 1.7中的新增功能,在这种情况下与使用.bind()相同。

1

HTML

<input type="button" id="btnOn" value="Off" /> 

的Javascript

var status = "off" 
$("#btnOn").click(function() { 

    if ($(this).val() == "On") { 
     $(this).val("Off") 
     status = "Off"; 
    } 
    else { 
     $(this).val("On") 
     status = "On"; 
    } 
    alert("status : " + status); 
}); 

下面是示例:http://jsfiddle.net/JCABs