我有一个包含3列和10行的表,其中包含文本字段。如果我将任何值添加到任何单元格中,相应行的第一列字段是必需的,如果没有文本,它将抛出错误消息,如“请在第1列添加值”,程序将暂停以更正输入。如何使用jQuery实现这一目标?
我的示例代码:
$(function() {$("#mySubmit").click(function(event) {
$('#myTable tr').each(function(event) {
if ($(this).find("td:first").length > 0) {
var firstColumn = $(this).find("td input").eq(0).val();
var secondColumn = $(this).find("td input").eq(1).val();
if (typeof (secondColumn) != "undefined") {
var lengthOfSecondColumn = secondColumn.length;
var lengthOfFirstColumn = firstColumn.length;
alert(lengthOfFirstColumn + ' ' + lengthOfSecondColumn )
if (lengthOfSecondColumn > 0) {
if(lengthOfFirstColumn < 1){
alert('Please add value in first column');
event.preventDefault();
}
}
}
}
});
$.ajax({
type : "POST",
url : "updateURL",
data : dataString,
success : function(data) {
if (data.checkingStatus == 0) {
alert("updated");
}
else (data.checkingStatus == -1) {
alert("...");
}
}
});
});
我试着这样做。但它已执行并重定向到自定义错误处理页面。
答案 0 :(得分:0)
试试这个:
$(function() {$("#mySubmit").click(function(event) {
var valid = true; // Add a variable
$('#myTable tr').each(function() { // remove 'event'
if ($(this).find("td:first").length > 0) {
var firstColumn = $(this).find("td input").eq(0).val();
var secondColumn = $(this).find("td input").eq(1).val();
if (typeof (secondColumn) != "undefined") {
var lengthOfSecondColumn = secondColumn.length;
var lengthOfFirstColumn = firstColumn.length;
alert(lengthOfFirstColumn + ' ' + lengthOfSecondColumn )
if (lengthOfSecondColumn > 0) {
if(lengthOfFirstColumn < 1){
alert('Please add value in first column');
event.preventDefault();
valid = false; //set variable to false if there was a problem
return false; //exit the loop;
}
}
}
}
});
if(valid) { //Only if form is valid
$.ajax({
type : "POST",
url : "updateURL",
data : dataString,
success : function(data) {
if (data.checkingStatus == 0) {
alert("updated");
}
else (data.checkingStatus == -1) {
alert("...");
}
}
});
}
});