2010-04-04 81 views
2

我使用JQuery Validation来验证我的形式特定文本框。文本框是可选website部,其使用url验证方法。这工作正常,并据此进行验证。我想有http://预置到文本框中,以节省不必键入它的用户。然而,当文本设置,验证变为“主动”,并防止在形式提交,直到该http://任何被手动删除,或者输入有效的网站。是否有一种方法可以将文本预置到文本框中,这不会导致验证程序开始验证?选择性jQuery验证

我试图用

$("[id$='tbWebsite']").val("http://"); 

我打电话form.validate()之前,但它不工作(即它仍然被选中)。

我从来没有使用JQuery Validator,所以希望有一个修复这个,我失踪了!

对于我的情况特别是替代解决方案,可能是如果按下某个按钮(而不是表单上的任何按钮)来激活验证程序。这可能吗?

感谢

更新

我已将此添加到文本框声明:

onfocus="if(this.value == 'http://' || this.value == '')this.value='http://'" onblur="if(this.value == 'http://')this.value=''" 

这解决了主要问题。但是,如果用户点击文本框,然后点击了,仍然显示错误消息(即使它不是强制执行,并且可以提交表单)。如果值为'http://',确保不显示错误消息的最佳方法是什么?

回答

1

放置在仅当用户聚焦文本框中的前缀,如果文本框失去焦点,与在它的前缀删除

+0

如果你这样做,确保你只** **将值设置为http://如果用户**没有输入任何内容,则不会比填写字段更糟糕,回到它并让它自行清空。 – 2010-04-04 20:52:41

+0

当然。在不清楚的情况下增加了一些重点。 – 2010-04-04 20:56:30

+0

谢谢。我实现了逻辑,它工作正常(表单可以提交)。但是,如果我在该框中单击,然后单击它(不输入任何有效的内容),仍会显示错误消息。我已经使用代码更新了我的原始帖子。 – keyboardP 2010-04-04 21:02:24