我正在尝试编写一些验证作为我的页面的一部分,以确保文本框是否有一些必需的文本,如果它不存在,它将禁用按钮。
我使用以下 jQuery 代码完美地工作:
<script>
$(document).on("ready", function () {
$('input[type="text"]').on('blur', function () {
var $required = $(this).next().val();
var $image = $(this).parent().next().children('img');
var $errors = $('img:visible').length;
if (($(this).val().indexOf($required) == -1) && ($(this).val() != '')) {
$image.show();
$("#submit").prop("disabled", true);
} else {
$image.hide();
//Manually subtract from error otherwise it doesnt subtract until the next focus change
$errors--;
if ($errors == 0)
$("#submit").prop("disabled", false);
}
});
});
</script>
当文本框需要两个值时会出现问题。它们作为逗号分隔的字符串存储在隐藏的输入中。我如何检查两者是否存在?只要他们都在那里,他们就可以以任何顺序在那里。我知道我可以使用 .split(',') 来获取和排列并测试它们,但这就是我坚持的部分。
我尝试过同时使用 .inArray() 和 .each() 但无法使用它。
我试图设置一个小提琴,但无法让它工作。
这是作为 MVC 项目的 HTML 的缩减版本,因此其中大部分是由模型等填充的。
HTML
<table width="100%" border="1px solid">
<tr>
<th>Source Text</th>
<th>Translation</th>
</tr>
<tr>
<td>Some text here</td>
<td><input type="Text"><input type="hidden" value="Some"></td>
<td><img id="cross" src="../cross.png" class="jq-cross hid" alt="error" /></td>
</tr>
<tr>
<td>Some text here</td>
<td><input type="Text"><input type="hidden" value="Some,Here"></td>
<td><img id="cross" src="" class="jq-cross hid" alt="error" /></td>
</tr>
<tr><td colspan="3"><button id="submit" type="submit">Update Translations</button> </td></tr>
</table>
您能给我的任何帮助将不胜感激。希望我在这里提供了足够的信息。
提前致谢