我如何处理文本框中的表达式取决于Java脚本中的复选框?

时间:2018-10-25 03:09:57

标签: javascript html

我的问题是,如果复选框已选中,则在文本框中插入的值将给出一个正方形。如果在文本框中为3,则单击复选框后,结果在文本框中必须为9。

请仅使用JavaScript和HTML进行解析。

function myfun() {
    var a = document.getElementById("checkedid");
    var b;
    var c = document.getElementById("txtbox");
    
    if(a.checked == true){
        alert("Value will be doubled");
        b = c*c;
        document.myform.txt.value = b;
        return false;
    }
}
<form name="myform">
    TextBox<input type="text" value="" name="txt" id="txtbox">
    <br/>
    Check Box<input type="checkbox" name="checkbx" id="checkedid" onclick="myfun()">
</form>

3 个答案:

答案 0 :(得分:0)

var c = document.getElementById("txtbox");替换为var c = document.getElementById("txtbox").value;。您必须从input获取值。

function myfun() {
    var a = document.getElementById("checkedid");
    var b;
    var c = document.getElementById("txtbox").value;
    
    if(a.checked == true){
        alert("Value will be doubled");
        b = c*c;
        document.myform.txt.value = b;
        return false;
    }
}
<form name="myform">
    TextBox<input type="text" value="" name="txt" id="txtbox">
    <br/>
    Check Box<input type="checkbox" name="checkbx" id="checkedid" onclick="myfun()">
</form>

答案 1 :(得分:0)

    function myfun() {
        var a = document.getElementById("checkedid");
        var b;
        var c = document.getElementById("txtbox");
        
        if(a.checked == true){
            var temp = c.value
            b = temp * temp;
            c.value = b;
            return false;
        }
    }
    <form name="myform">
        TextBox<input type="text" value="" name="txt" id="txtbox">
        <br/>
        Check Box<input type="checkbox" name="checkbx" id="checkedid" onclick="myfun()">
    </form>

在这里,您从ID获得了elemnet。您需要对值而不是对元素执行平方运算

使用

c.Value而不是仅c

function myfun()
   {
      var a = document.getElementById("checkedid");
      var c = document.getElementById("txtbox");
      var b;
      if(a.checked == true){
           //Use c.Value not c
           var temp = c.value;
           b = temp * temp;
           c.value = b;
           return false;
           }

   }

答案 2 :(得分:0)

这应该有效。唯一的假设是文本框具有值。

function myFunc() {
    var chk = document.getElementById("checkedid");            
    if (chk.checked == true) {
        var x = parseInt(document.getElementById("txtbox").value);
        var result = x * x;
        document.myform.txt.value = result.toString();
        return false;
    }
}