ASP .NET ajax字段验证

时间:2009-10-24 10:39:33

标签: asp.net-mvc

根据刚刚输入 BEFORE 表单提交的值更改ASP .NET MVC表单中文本字段颜色的最简单方法是什么。

要使用的颜色由数据库查询返回。

例如:

如果在字段中输入的数字低于在数据库中为项目注册的数量,则查询返回红色。

由于

3 个答案:

答案 0 :(得分:1)

你可以像下面的例子一样使用jQuery:

//bind a function to the blur even of the text field
$("#the-imput-control").blur(function () {
     var value = this.val();
     //send the value to the server and then process the result.
     $.getJSON("yourUrl", { key: value }, function(data) {
         //return a json object with a property "color"
         //and use its value to set the text field's color
         $("#the-imput-control").css("color", data.color);
     });
     //you can of course use another ajax function depending on your needs.
});

答案 1 :(得分:0)

您希望在提交按钮或更改数量时触发事件以检索产品数量。

您也可以在开头加载颜色,但在用户输入时库存可能会发生变化。

例如

  1. 用户加载订单,库存数量:4,也许您将颜色设置为橙色,因为它很低......
  2. 用户填写表格,其他一些用户总共订购3件,剩下1件库存
  3. 用户想订购2件商品。
  4. 用户点击提交,您的事件检查数量并显示消息/更改文本框的颜色
  5. 据我所知,如果db中的金额低于订购金额,你就不会有回发....但考虑到用户可能没有打开javascript,你也应该在服务器端实现。

    就我个人而言,我只是在服务器端进行,因为在客户端只是一个你不能依赖的额外功能。

答案 2 :(得分:0)

如果没有任何安全风险,最好缓存产品的可用数量,而不是去服务器进行验证。这样,UI将更具响应性 - 用户体验将更好。所以,基本上,

// JS
var availableQuantities = [10, 15, 30];
$(".the-imput-control").blur(function () {
     var value = $(this).val();

     var productIndex = $(this).parent().children().index(this); // sort of

     $(this).toggleClass('invalid', (availableQuantities[productIndex] < value));
});

// CSS
.invalid { color: red; }