我正在尝试验证动态添加控件的 html 页面。
我的代码如下所示
function validateComments() {
var errorcheck = 0;
$("[id^=txt_comments]").each(function () {
var comment = $.trim($(this).val());
$("[id^=validate]").each(function () {
var value = $(this).val();
if (comment == 0 && value == "Yes") {
errorcheck = 1;
}
});
});
if (errorcheck == 1) {
// Show error message
}
else {
ErrorHide();
return true;
}
}
所以我的页面有一个<textarea>HTML 控件(带有 id 'txt_comments')和一个<select>HTML 控件(带有 id 'validate')。
此控件有选项:“选择一个值”、“是”、“否”
所以每个文本区域都有一个各自的选择(下拉)。
并且这些控件是动态添加的。
我的验证规则是:
- 用户必须从下拉列表中选择任何值
- 如果用户选择“是”,则相应的文本区域应该有一些文本(最少 1 个字符,最多 1000 个字符)
- 如果用户选择“否”,则 textarea 可以为空白或禁用。
我能够验证文本区域或下拉列表。我无法同时验证两者。
任何人都可以帮忙吗?
提前致谢。
编辑:
我从 VB.NET 生成 HTML 动态代码
Dim sb As New StringBuilder
sb.Append("<table border='0'cellpadding='0' cellspacing='0' width='50%' class ='tabledata' id='tblContent'>")
For Each item As myObject In myLst
sb.Append("<tr><td style='width:50%;' valign='top'>")
sb.Append("<textarea id=txt_comments" & i & " name='txt_comments' rows='5' cols='60'></textarea></td>")
sb.Append("<td style='width:15%' valign='top' align='center'><select ID = validate" & i & " name=ValidateValues style ='border:1;width:150px'><option value = ''>Select</option><option value = 'Yes'>Yes</option><option value = 'No'>No</option><br /><br /></td>")
sb.Append("</tr><tr>")
Next
sb.Append("</table>")
myContent.InnerHtml = sb.ToString