在Javascript

时间:2016-12-28 13:35:05

标签: javascript

我正在寻找一些建议!

我正在制作一个简单的程序来计算给定用户输入的平方根。我已经成功完成了这一部分。

我想通过限制用户输入来扩展我的学习。我希望输入只有10位数,否则它会要求“再试一次”。

我设法通过将maxlength设置为10来限制它,但我不知道如何将它作为我的minlength?

这是我的代码,您可以在我的评论中看到我在搞乱的内容。

function doMath(){
  
    var inputNum1 = document.form1.input1.value;
    var result = Math.sqrt(inputNum1);
    
    //if (inputNum1!\d{10}) {
    //	"Enter a ten digit number";
    document.form1.answer.value = result;
    //}
    
}
<form name=form1>
    Enter a ten-digit number:
    <input type="text" name="input1" size=16 maxlength=10><br><br>
    <input type="button" value="Calculate" onClick='doMath()'>
    <br><br>
    The square root is:
    <input type="text" name="answer" size=22>
</form>

另一个细节,我刷新屏幕后如何阻止文本留在框中?这是第一次发生。

再次感谢你们。

2 个答案:

答案 0 :(得分:0)

为什么不将inputNum1视为字符串? 使用inputNum.toString()。length来解决这个问题。

BESIDES,尝试使用autocomplete =&#34; off&#34;在你的&lt;输入&gt;。

答案 1 :(得分:0)

我不知道为什么我被贬低,也许对于经验丰富的成员来说似乎微不足道,但我们都必须从某个地方开始。

经过一些修修补补后,我找到了一个有效的解决方案。它很可能不像其他人想出的那样优雅,但我会发布一些代码来展示我是如何让它发挥作用的。

<script type="text/javascript">

function doMath(){

var inputNum1 = document.form1.input1.value;
var result = Math.sqrt(inputNum1);

    if(inputNum1.length == 10){


    document.form1.answer.value = result;

    }

    else {

        alert("Enter a ten digit number");
    }
}


function clear_field(field) {

        if (field.value==field.defaultValue) {

            field.value=''

        }

    }

</script>

如您所见,我还添加了清除数据的方法

</head>
<body>
<form name=form1>
Enter a ten-digit number:
<input type = "text" name = "input1" size = 12><br><br>
<input type = "button" value = "Calculate" onClick = 'doMath()'>
<br><br>
The square root is:
<input type = "text" name = "answer" size = 20>
    <br><br>
<input type = "reset" value = "Clear" onClick = 'clear_field(field)'>
</form>
</body>
</html>

希望这会帮助其他有类似问题的人。再次感谢那些提供帮助的人。