2011-11-02 79 views
1

我在窗体上有一个单独的文本框 - 基本上允许用户在我们的迷你CMS中更改其网站的URL。我们使用远程验证来检查URL是否已被使用。Asp.Net Mvc远程验证文本框焦点问题

他们输入他们想要的URL并点击保存按钮。如果他们这样做,焦点从文本框直接提交到提交按钮 - 验证不会发生,并且表单不能正确提交。如果他们进入了一个空白区域,那么这个表单就行了。

表单提交的问题是,如果他们点击空格,我们会得到提交按钮的名称以及所需的URL - 我们使用(AcceptParameterAttribute)允许我们将表单提交路由到正确的操作。这使用提交按钮名称属性来执行此操作。如果他们没有点击空格以便在文本框上失去焦点,则只发布所需的URL。

这是一个非常奇怪的,这是非常讨厌。有没有人见过这样的事情?有没有办法解决这个问题?当你点击提交按钮出现

$(":input").live("blur", function() { 
    $(this.form).validate().element(this); 
}); 

这应该引起验证:

回答

0

尝试添加下面的脚本的页面。如果没有,请尝试更改第一行:

$(":submit").live("click", function() { 
+0

的作品就像一个本地的魅力 - 我猜有一个竞争条件 - 不是在服务器上,虽然?它在验证发生之前返回? – iwayneo

+0

很可能。试试我在这里发布的解决方案:http://stackoverflow.com/questions/7840634/how-to-get-unobtrusive-jquery-remote-validator-to-perform-async/7841104#7841104。这将允许您等待完成远程验证。 – counsellorben

+0

我必须破解,破解,破解这个工作:( – iwayneo