【问题标题】:Can I trigger my Html.ValidationMessageFor with jquery and have it display some string I define in JQuery?我可以用 jquery 触发我的 Html.ValidationMessageFor 并让它显示我在 JQuery 中定义的一些字符串吗?
【发布时间】:2015-08-12 22:58:50
【问题描述】:

如果我的 asp.net mvc 应用程序中有一个名为 search 的文本字段的验证标记,我可以使用 jquery/javascript 插入它以在执行某些逻辑时触发它吗?我该怎么做?

看起来像这样

@Html.TextBox("SearchQuery", other stuff here, other)
@Html.ValidationMessageFor("SearchQuery")

假设我想触发验证消息以显示是否发生这种情况

$('form').submit( function (e) {
  e.preventDefault(e);
  var results = GetLocation();
  if (results) {
    this.submit();  
  } else {
    // trigger validation message and display "can't find results"
    }
});

请注意,我认为我不需要在此处进行验证,我只想显示一条消息,如果我确实验证了验证消息的位置

【问题讨论】:

  • 什么是Html.Validate() 这是你自己的扩展方法吗?
  • 可能语法不正确,但这是 asp.net mvc 的内置验证助手。如果某些逻辑条件为真,我想抛出这个验证,并给它一个特定的字符串来显示。
  • 可能是它的@Html.ValidationMessageFor
  • 是的,它的 ValidationMessageFor(),如果您启用了客户端验证并包含相关脚本,那么所有这些都是开箱即用的。
  • 我这样做了,它正在用于“IsRequired”属性等验证检查,但我想做的是在 javascript 中给它我自己的消息。前任。我正在使用谷歌地图进行搜索以获取地理坐标,如果没有坐标返回我,A.)不提交 B.)我想使用验证消息来显示类似“未找到搜索结果”之类的内容我想它使用标签会更容易,因为它已经存在,而不是创建另一个隐藏标签然后取消隐藏它等等。

标签: javascript jquery asp.net-mvc validation


【解决方案1】:

据我了解您的问题,对于来自服务器的自定义消息,您需要将对象发送到服务器,然后从中获取响应。

例如,您可以使用 ajax 调用来执行它:

$.ajax({
        url : 'example.com',
        type: 'POST',
        data : results,
        success:function(datafromserver)     
        {                 
 $('.resultState').html(datafromserver);
         }    
});

如果首先在客户端进行验证然后发送(并在服务器中再次检查),在这种情况下请记住,如果 getLocation 函数返回任何内容(例如字符串、对象等),var 结果始终为真所以在这种情况下,使用 console.log 打印它并查看它是否是一个对象(例如:data.x === none 或 'no coordinates' 只需正确评估它,您就可以避免使用 ajax。

希望有所帮助! 问候

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    • 2015-12-04
    • 1970-01-01
    相关资源
    最近更新 更多