0

我在 asp.net mvc 中使用远程验证遇到了一个非常奇怪的行为。

这些是重现该行为的步骤:

1.) Enter user name "1" in the database
2.) Enter user name "1" in the Create User dialog -> nothing happens, I expected an error message
3.) I remove the "1" in the text box.
4.) I enter "1" again in the text box. -> Again nothing happens.
5.) Then I click with the mouse somewhere on the dialog
6.) Suddenly the error message appears, that user name "1" already exists ?

这是远程验证在 asp.net mvc 中的工作方式吗?

更糟糕的是,当我单击提交按钮时,验证操作和创建操作都会被触发,这会导致总的意外/无法控制的结果。

4

2 回答 2

0

实际上它可以通过简单的解决方案来解决,我们可以将验证放在 keypress 事件中以进行特定输入,这样就可以了

$("input[type='text'"]).keypress(function() {
  $(this).valid();
});
于 2012-12-20T09:46:30.927 回答
0

那么通过你描述的过程可能会发生两件事..

  1. jQuery 的文本更改事件仅在相应的输入标记失去焦点时触发(通过按标签或单击鼠标)

  2. 远程验证需要时间来发送 AJAX 请求然后获得响应,因此您应该确保远程验证请求可能是在正确的时间发送的,但是您得到的响应恰好与鼠标单击一致。

于 2012-04-29T19:27:19.347 回答