JavaScript验证

JavaScript验证,javascript,validation,Javascript,Validation,我有一个文本框,用于输入URL。我希望当我点击提交按钮时,文本框被验证 我希望文本框中输入的值是包含http://www.零件 我基本上希望它是一个有效的网址。 表格的代码为 <form action="next.php" method="get"> <input id="home_page_input" type="text" name="page" value="http://"onfocus="this.value = ( this.value == this

我有一个文本框,用于输入URL。我希望当我点击提交按钮时,文本框被验证

我希望文本框中输入的值是包含
http://www.
零件

我基本上希望它是一个有效的网址。 表格的代码为

<form  action="next.php" method="get">
    <input  id="home_page_input" type="text" name="page" value="http://"onfocus="this.value = ( this.value == this.defaultValue ) ? '' : this.value;return true;">
    <input id="url_input_button" type="submit" value="enter it !" />
  </form>


实际上,这个表单被发送到一个使用Curl/file\u get\u内容的php文件。所以我只希望它的格式是curl不会通过Regexp显示任何错误

URL的规则相当复杂。这里有一个来自“无论如何”:

^http\://[a-zA-Z0-9-.]+[a-zA-Z]{2,3}(/\S*)$

通过Ajax

另一种方法是使用AJAX(通过Jquery),向输入的URL发送请求并返回是否为404。不过,最大的缺陷是,如果服务器宕机一个小时左右

考虑


这有关系吗?许多这样的验证实际上会导致比增强更多的问题。以电子邮件验证为例。

通过Regexp进行验证

URL的规则相当复杂。这里有一个来自“无论如何”:

^http\://[a-zA-Z0-9-.]+[a-zA-Z]{2,3}(/\S*)$

通过Ajax

另一种方法是使用AJAX(通过Jquery),向输入的URL发送请求并返回是否为404。不过,最大的缺陷是,如果服务器宕机一个小时左右

考虑


这有关系吗?许多这样的验证实际上会导致比增强更多的问题。以电子邮件验证为例。

jQuery验证插件支持URL验证。请参见jQuery验证插件支持URL验证的示例。请参见

中的示例,您需要做的是为表单的提交事件分配一个事件处理程序,并在那里进行检查

<form onsubmit="return checkForm();" action="next.php" method="get">
    <input  id="home_page_input" type="text" name="page" value="http://" >
    <input id="url_input_button" type="submit" value="enter it !" />
</form>
如果不确定将javascript代码放在何处,也可以将其与HTML放在一起,如下所示:

<script type="text/javascript">
// onSubmit - if it returns false, it won't submit, and vice versa
function checkForm () {

    var url_input_button = document.getElementById('url_input_button');
    var ok = /^[a-z]+:\/\//i.test(url_input_button.value);
    if (!ok) {
        alert('url is not correctly formed');
        return false;
    }

    // url is fine, continue
    return true;

}
</script>

<form onsubmit="return checkForm();" action="next.php" method="get">
    <input  id="home_page_input" type="text" name="page" value="http://" >
    <input id="url_input_button" type="submit" value="enter it !" />
</form>

//onSubmit-如果返回false,则不会提交,反之亦然
函数检查表(){
var url_input_button=document.getElementById('url_input_button');
var ok=/^[a-z]+:\/\//i.test(url\u input\u button.value);
如果(!ok){
警报(“url格式不正确”);
返回false;
}
//url正常,是否继续
返回true;
}
编辑:我做jquery已经很长时间了,以至于我的普通javascript技能已经退化。不知道如何在不使用内联javascript的情况下分配事件。。我已经编辑了这个例子


关于堆栈溢出的一些相关问题:

您需要做的是为表单的提交事件分配一个事件处理程序,并在那里进行检查

<form onsubmit="return checkForm();" action="next.php" method="get">
    <input  id="home_page_input" type="text" name="page" value="http://" >
    <input id="url_input_button" type="submit" value="enter it !" />
</form>
如果不确定将javascript代码放在何处,也可以将其与HTML放在一起,如下所示:

<script type="text/javascript">
// onSubmit - if it returns false, it won't submit, and vice versa
function checkForm () {

    var url_input_button = document.getElementById('url_input_button');
    var ok = /^[a-z]+:\/\//i.test(url_input_button.value);
    if (!ok) {
        alert('url is not correctly formed');
        return false;
    }

    // url is fine, continue
    return true;

}
</script>

<form onsubmit="return checkForm();" action="next.php" method="get">
    <input  id="home_page_input" type="text" name="page" value="http://" >
    <input id="url_input_button" type="submit" value="enter it !" />
</form>

//onSubmit-如果返回false,则不会提交,反之亦然
函数检查表(){
var url_input_button=document.getElementById('url_input_button');
var ok=/^[a-z]+:\/\//i.test(url\u input\u button.value);
如果(!ok){
警报(“url格式不正确”);
返回false;
}
//url正常,是否继续
返回true;
}
编辑:我做jquery已经很长时间了,以至于我的普通javascript技能已经退化。不知道如何在不使用内联javascript的情况下分配事件。。我已经编辑了这个例子


关于堆栈溢出的一些相关问题:

你使用库作为jquery吗?你使用库作为jquery吗?他希望它包括
www.
@Trinidad,这就是你看到的问题,有许多没有www的有效URL。这一点有很多歧义。因此,我建议根本不进行验证,但如果有必要,AJAX请求可能是最安全的。所以我只希望它的格式能让curl不显示任何错误,她希望它包括
www.
@Trinidad,这就是你看到的问题,有很多没有www的有效URL。这有很多不明确之处。因此,我建议根本不进行验证,但如果有必要,AJAX请求可能是最安全的。所以我只希望它的格式是curl不会显示任何错误。这个表单被发送到使用curl的php文件中。所以我只希望它的格式是curl不显示任何错误。我也可以自由使用Jquery是的,验证的主要要点是验证URL的javascript正则表达式:
var ok=//^[a-z]+:\//\//\//I.test(URL\u input\u button.value)在服务器端进行验证总是一个好主意。此表单将被发送到使用Curl的php文件中。所以我只希望它的格式是curl不显示任何错误。我也可以自由使用Jquery是的,验证的主要要点是验证URL的javascript正则表达式:
var ok=//^[a-z]+:\//\//\//I.test(URL\u input\u button.value)在服务器端进行验证总是一个好主意。