【问题标题】:mvc .net and jquery how do you remove a character before posting to avoid validation?mvc .net 和 jquery 如何在发布前删除字符以避免验证?
【发布时间】:2013-02-11 20:55:49
【问题描述】:

我在模型上有一个属性,它接受字符串值并存储颜色的十六进制值

例如:EEEEEE, 000000

我集成了一个 jquery 插件,以便用户可以使用颜色选择器。我喜欢它,因为它非常易于使用。问题是,当您选择一种颜色时,它会用“#”字符填充文本框,这样就可以轻松更改文本框的颜色(出于用户友好的目的 - 它是插件的一部分)。

现在我想在帖子中保存值,但问题是模型上的验证将只接受以下字符“0-9A-F”。我也想维护(数据库上没有特殊字符)。

所以我想为了避免验证,我会在单击按钮时修改文本框。我的问题是:

1.这是最有效的方法吗?

2。如果是,我将如何使用 jquery 来做到这一点?还是别的什么?

让我知道你的想法。

谢谢!!!

【问题讨论】:

  • 为什么要让数据库没有有特殊字符?我会将它与# 一起存储并使用正则表达式进行验证(类似于#[0-9A-F]

标签: jquery asp.net-mvc-3 forms formcollection


【解决方案1】:

我会在您的模型上使用如下正则表达式验证器:

[RegularExpression(@"#([0-9][A-F])*", ErrorMessage = "Invalid Color Code")]

这将在验证中包含“#”,因此它将通过验证,然后您可以根据需要在服务器端处理“#”。

如果您无法更改模型验证,也许您可​​以在提交表单之前在 JavaScript 中做一些事情,以从提交的值中删除“#”。

【讨论】:

  • 好吧,atm 我们试图避免 # 保存在实例上。如果可以的话我会这样做,但不幸的是它不是。
  • 所以,走 jQuery 路线,您可以执行以下操作: $("#button").click(function() { $("#textbox").val($("#文本框").val().replace("#","")); $("#form").submit(); return false; });这应该在单击按钮时从文本字段中删除“#”,然后提交表单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多