-1

我有一个文本字段,我在其中输入数据我希望如果用户输入 1000,那么它会在文本字段中显示 1,000,但是同样的值 1000 也用于进一步计算,所以如果用户输入 1000 那么如何解决这个问题,然后只是为了显示它显示 1,000如果我们在计算中使用,那么相同的 var 显示 1000 进行计算。

  <HTML>
  <body>
  <input type="text" id="test" value="" />
  </body>

   <script>


     var c=document.getElementById(test);
   </script>
  </html>

所以如果 c 用户输入 1000 那么它应该显示 1,000 来显示一个并且如果用户在脚本中使用

     var test=c

然后测试应该显示 1000

4

5 回答 5

1

document.getElementById返回null唯一元素或对唯一元素的引用,在本例中为input元素。输入元素具有value包含其当前值(作为字符串)的属性。

所以你可以使用

var test = parseInt(c.value, 10);

获取当前值。这意味着如果您没有使用任何预定义的值test,则NaN.

但是,这只会被评估一次。为了更改值,您需要添加一个事件侦听器,它处理对输入的更改:

// or c.onkeyup
c.onchange = function(e){
    /* ... */
}
于 2013-04-20T08:07:21.977 回答
1

Zeta离开的继续形式:

var testValue = parseInt(c.value);

现在让我们根据需要组合显示:1,000

var textDecimal = c.value.substr(c.value.length-3); // last 3 characters returned
var textInteger = c.value.substr(0,c.value.length-3); // characters you want to appear to the right   of the coma
var textFinalDisplay = textInteger + ',' + textDecimal

alert(textFinalDisplay);

现在您将显示保存为 textFinalDisplay 作为字符串,并将实际值保存为 c.value 中的整数

于 2013-04-20T08:24:22.990 回答
0

这适用于 Firefox (Linux) 上的整数。您可以使用函数“intNumValue()”访问“非逗号”值:

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
    String.prototype.displayIntNum = function()
    {
    var digits = String(Number(this.intNumValue())).split(""); // strip leading zeros
    var displayNum = new Array();
    for(var i=0; i<digits.length; i++) {
        if(i && !(i%3)) {
        displayNum.unshift(",");
        }
        displayNum.unshift(digits[digits.length-1-i]);
    }
    return displayNum.join("");
    }
    String.prototype.intNumValue = function() {
    return this.replace(/,/g,"");
    }
    function inputChanged() {
    var e = document.getElementById("numInp");
    if(!e.value.intNumValue().replace(/[0-9]/g,"").length) {
        e.value = e.value.displayIntNum();
    }
    return false;
    }
    function displayValue() {
    alert(document.getElementById("numInp").value.intNumValue());
    }
</script>
</head>
<body>
<button onclick="displayValue()">Display value</button>
<p>Input integer value:<input id="numInp" type="text" oninput="inputChanged()">
</body>
</html>
于 2013-04-20T09:36:00.207 回答
0
<input type="text" id="test" value=""></input>
<button type="button" id="get">Get value</input>

var test = document.getElementById("test"),
    button = document.getElementById("get");

function doCommas(evt) {
    var n = evt.target.value.replace(/,/g, "");
        d = n.indexOf('.'),
        e = '',
        r = /(\d+)(\d{3})/;

    if (d !== -1) {
        e = '.' + n.substring(d + 1, n.length);
        n = n.substring(0, d);
    }

    while (r.test(n)) {
        n = n.replace(r, '$1' + ',' + '$2');
    }

    evt.target.value = n + e;
}

function getValue() {
    alert("value: " + test.value.replace(/,/g, ""));
}

test.addEventListener("keyup", doCommas, false);
button.addEventListener("click", getValue, false);

jsfiddle上

于 2013-04-20T08:31:40.563 回答
0

您可以从变量 x 中获取实际值

<html>
<head>
    <script type="text/javascript"> 
        function abc(){
            var x = document.getElementById('txt').value;               
            var y = x/1000;
            var z = y+","+ x.toString().substring(1);
            document.getElementById('txt').value = z;
        }
    </script>
</head>
<body>
    <input type="text" id="txt" value="" onchange = "abc()"/>
</body>

于 2013-04-20T08:34:47.807 回答