1

我有以下代码充当http://www.random.org/integers/的接口。我想要做的是验证所有表单字段并使用 JavaScript 显示警报框等。一个例子是将数字设置在一定范围内(在整数情况下为最小值和最大值),如果它们超出范围,则会显示一个框,说明数字必须在 1 到 1000 之间。

我遇到的问题是表单直接将我发送到 random.org 网站,没有考虑我的脚本,它甚至不会显示一个警告框,它只是将我发送到他们的网站。

这是代码。

<form method="get" action="http://www.random.org/integers/">

    <p> Generate 
        <input type="text" name="num" value="100" size="6" maxlength="5" /> 
                    random integers (maximum 10,000).
    </p>

    <p>Each integer should have a value between 
        <input type="text" name="min" value="1" size="12" maxlength="10" /> and 
        <input type="text" name="max" value="100" size="12" maxlength="10" />

    </p>

    <p>Format in 
        <input type="text" name="col" value="5" size="2" maxlength="6" /> columns.
    </p>
    <p> Choose your base: 
         <select name="base">
              <option value="2"> 2 </option>
              <option value="8"> 8 </option>
              <option value="10"> 10 </option>
         </select>

    </p>


    <p>
         <input type="submit" class="submit" value="Get Numbers" onsubmit="analert()" />
         <input type="reset" class="submit" value="Reset Form" />
         <input type="button" class="submit" value="Switch to Advanced Mode"/>
    </p>

    </form>

和脚本:

<script>
function analert()
{
alert("Tralalala");
}
</script>

我怎样才能使这项工作,显示一个警告框,指出数字超出范围,而不被重定向到告诉我数字超出范围的 random.org 网站?

4

2 回答 2

1

您必须检查验证,然后决定是否提交表单

在这里看小提琴

但是我刚刚完成了一种情况,您添加了进一步的验证尝试任何负值生成它会给您错误并且不会提交表单

function check(){
if($("#generate").val() < 0 || $("#generate").val() > 10000){
    alert("generate number should be less than 10000");
    return;
}
//add your further condition here

$("#frmsub").click();

}

于 2013-11-01T11:43:05.157 回答
0

您可以从使用 HTML5 中定义的一些输入类型开始:

<input type="number" name="num" maxlength="5" min="20" max="200" step="1" value="100" size="6" /> 

在这里,我们声明一个min值(出于示例的目的,我假设为 20)一个max值(再次相同)和一个step- 即每个增量可以是多少。

现代浏览器将验证这一点,显示适当的消息并突出显示要更正的字段。

您还可以选择添加 JavaScript 验证...

<form id="myForm" method="get" action="http://www.random.org/integers/">

我在此处添加了一个 ID,以避免使用 JavaScript 属性感染表单。

var myForm = document.getElementById('myForm');
myForm.onsubmit = function () {
    // You can code your own validation...
    // return false to prevent submission
    // If everything is okay...
    return true;
};
于 2013-11-01T11:31:29.033 回答