我在包含textBox和textArea的表单上遇到问题。该论坛处于共享视图中。 textBox正在验证,但textArea不是。我经历过其他人面临的许多问题,似乎无法解决它。我在我的应用程序中创建了另一个表单,并且验证在textArea上进行了
表单是动态创建的问题页面。
@for (var i = 0; i < Model.QuestionAnswers.Count; i++)
{
@switch (Model.QuestionAnswers[i].QuestionType)
{
case QuestionTypeEnum.SentenceRequired:
@Html.TextAreaFor(m => m.QuestionAnswers[i].Answer, 5, 20, new { @class = "input-xlarge persistLocal",
required = "required" })
break;
case QuestionTypeEnum.TextBoxRequired:
@Html.TextBoxFor(m => m.QuestionAnswers[i].Answer, new {@class = "input-xlarge persistLocal", required = "required" })
break;
}
}
这是我的模型,我没有在模型上使用属性,因为在生成表单时,不需要一些问题。我试过这个,它仍然无法正常工作。
public class QuestionAnswerViewModel
{
public List<QuestionAnswer> QuestionAnswers { get; set; }
}
/// <summary>
///
/// </summary>
public class QuestionAnswer
{
public string Answer { get; set; }
public string Question { get; set; }
public int PermitRequestTypeQuestionId { get; set; }
public QuestionTypeEnum QuestionType { get; set; }
public int AnswerId { get; set; }
[DisplayName("Question")]
public string QuestionAndAnswerText
{
get { return string.Format("{0} <strong>{1}</strong>", Question, Answer); }
}
}
这是我的论坛的屏幕截图
这些是加载到视图中的脚本
在父视图中,我尝试添加此项以尝试强制验证 $ .validator.unobtrusive.parse( “#表格名称”);
我想也许这两个textarea标签之间可能有一些空白区域,但它似乎没有,并且javascript控制台窗口中没有错误,正如我之前所说,它适用于文本框。我也尝试将其更改为EditFor并更改了model属性以使用multiline属性和required属性,但仍然没有乐趣。
非常感谢任何正确方向的帮助,谢谢
答案 0 :(得分:1)
尝试将[Required]
属性添加到属性的模型中。
这样的事情:
[Required]
public string Answer { get; set; }
[Required]
public string Question { get; set; }
答案 1 :(得分:1)
因为我没有从这个局部视图回发到服务器,所以这条Javascript用于验证局部视图
var validator = $("form").validate(); // obtain validator
var anyError = false;
$step.find("input").each(function() {
if (!validator.element(this)) { // validate every input element inside this step
anyError = true;
}
});
if (anyError)
return false; // exit if any error found
JQuery没有拿起textArea,因为它没有出现。
$step.find("input,textarea").each(function()
答案 2 :(得分:0)
尝试用EditorFor替换TextAreaFor。由于您的模型已经设置了多行标记,这不应该影响您的UI,但它应该解决TextAreaFor的潜在(以及某些版本的过去记录)错误。