Javascript 如何停止调用服务器端事件

Javascript 如何停止调用服务器端事件,javascript,Javascript,我已经做了一个方法,为用户反馈添加一个图像到页面。我自己也尝试过这个方法,现在想反复使用它,这样它就能与网站上的验证相匹配 function ValidateFields(div, imgDiv) { var validPass = true; var elem = document.getElementById(div).value; if (elem == "") { var img = document.createElement("img"); img.src = "/

我已经做了一个方法,为用户反馈添加一个图像到页面。我自己也尝试过这个方法,现在想反复使用它,这样它就能与网站上的验证相匹配

function ValidateFields(div, imgDiv) {
var validPass = true;

var elem = document.getElementById(div).value;
if (elem == "") {
    var img = document.createElement("img");
    img.src = "/assets/img/errorIcon.png";
    var src = document.getElementById(imgDiv);
    src.appendChild(img);
    validPass = false;
    //document.getElementById('lbl_pdf_title').innerText = ("Please enter a title for the PDF");
}
return (validPass);
}
当我通过传递正确的值来使用此方法时,它工作正常,但现在我想使用如下方法:

function ValidatePdf() {
ValidateFields('txt_pdf_title', 'imgPdfError');

   if (!ValidateFields()) {
      // make it false
    }
}
我想在
ValidatePdf()
中多次使用该方法,但它显示了符号,然后继续运行服务器端方法。 这是我的按钮单击:

<button id="btn_submit_pdf"
                runat="server"
                class="btn btn-default"
                title="Submit PDF"
                onclick="if (!ValidatePdf()) return false;"
                onserverclick="btn_submit_pdf_Click">
                Submit
            </button>

提交
是否需要将另一个值传递给
ValidateFields()
我不知道为什么它不起作用。但是当您传入原始值并调用按钮上的方法时,单击错误的方式应该是:

function ValidatePdf() {
    if (!ValidateFields('txt_pdf_title', 'imgPdfError')) {
        // alert('not valid');
    }
}
错误的方式,应该是:

function ValidatePdf() {
    if (!ValidateFields('txt_pdf_title', 'imgPdfError')) {
        // alert('not valid');
    }
}
错误的方式,应该是:

function ValidatePdf() {
    if (!ValidateFields('txt_pdf_title', 'imgPdfError')) {
        // alert('not valid');
    }
}
错误的方式,应该是:

function ValidatePdf() {
    if (!ValidateFields('txt_pdf_title', 'imgPdfError')) {
        // alert('not valid');
    }
}

只需返回ValidateFields的结果即可:

function ValidatePdf() {
    return ValidateFields('txt_pdf_title', 'imgPdfError');
}
您还可以将
onclick
更改为:

onclick="return ValidatePdf();"

因此它返回
ValidatePdf
的结果,现在是
ValidateFields
的结果,只需返回
ValidateFields
的结果即可:

function ValidatePdf() {
    return ValidateFields('txt_pdf_title', 'imgPdfError');
}
您还可以将
onclick
更改为:

onclick="return ValidatePdf();"

因此它返回
ValidatePdf
的结果,现在是
ValidateFields
的结果,只需返回
ValidateFields
的结果即可:

function ValidatePdf() {
    return ValidateFields('txt_pdf_title', 'imgPdfError');
}
您还可以将
onclick
更改为:

onclick="return ValidatePdf();"

因此它返回
ValidatePdf
的结果,现在是
ValidateFields
的结果,只需返回
ValidateFields
的结果即可:

function ValidatePdf() {
    return ValidateFields('txt_pdf_title', 'imgPdfError');
}
您还可以将
onclick
更改为:

onclick="return ValidatePdf();"

因此,它返回
ValidatePdf
的结果,该结果现在是
ValidateFields

的结果。对于多重验证,您只需添加另一个布尔值:

function ValidatePdf() {
  var isValidate=true;
  isValidate=isValidate && ValidateFields('txt_pdf_title', 'imgPdfError');
  isValidate=isValidate && ValidateFields('txt_pdf_title1', 'imgPdfError1');
  isValidate=isValidate && ValidateFields('txt_pdf_title2', 'imgPdfError2');
  return(isValidate);
}


对于多重验证,只需添加另一个布尔值:

function ValidatePdf() {
  var isValidate=true;
  isValidate=isValidate && ValidateFields('txt_pdf_title', 'imgPdfError');
  isValidate=isValidate && ValidateFields('txt_pdf_title1', 'imgPdfError1');
  isValidate=isValidate && ValidateFields('txt_pdf_title2', 'imgPdfError2');
  return(isValidate);
}


对于多重验证,只需添加另一个布尔值:

function ValidatePdf() {
  var isValidate=true;
  isValidate=isValidate && ValidateFields('txt_pdf_title', 'imgPdfError');
  isValidate=isValidate && ValidateFields('txt_pdf_title1', 'imgPdfError1');
  isValidate=isValidate && ValidateFields('txt_pdf_title2', 'imgPdfError2');
  return(isValidate);
}


对于多重验证,只需添加另一个布尔值:

function ValidatePdf() {
  var isValidate=true;
  isValidate=isValidate && ValidateFields('txt_pdf_title', 'imgPdfError');
  isValidate=isValidate && ValidateFields('txt_pdf_title1', 'imgPdfError1');
  isValidate=isValidate && ValidateFields('txt_pdf_title2', 'imgPdfError2');
  return(isValidate);
}



为什么要调用没有参数的
ValidateFields()
?另外,
var elem=document.getElementById(div.value)有问题。您是否检查了控制台中的错误?您使用的是哪种服务器端技术?为什么要调用
ValidateFields()
而不使用参数?另外,
var elem=document.getElementById(div.value)有问题。您是否检查了控制台中的错误?您使用的是哪种服务器端技术?为什么要调用
ValidateFields()
而不使用参数?另外,
var elem=document.getElementById(div.value)有问题。您是否检查了控制台中的错误?您使用的是哪种服务器端技术?为什么要调用
ValidateFields()
而不使用参数?另外,
var elem=document.getElementById(div.value)有问题。你有没有检查你的控制台有没有错误?你使用的是哪种服务器端技术?用一个更高效的解决方案和额外的帮助,只需几秒钟就可以打败我+1.我认为这不是正确的答案:OP想要验证多个字段,使用此代码是不可能的。如果OP想要验证多个字段,那么OP应该在
ValidateFields
方法中进行验证。这个解决方案回答了为什么他的
onclick
无法阻止对OP服务器端函数的调用的问题。此外,OP还没有发布任何要验证的实际字段,所以你对需要验证的字段的猜测和我的一样好。我只是想理解OP所说的“很多次”是什么意思。没必要生气。验证更多的空字段只需几秒钟,就可以用更有效的解决方案和额外的帮助吃掉我+1.我认为这不是正确的答案:OP想要验证多个字段,使用此代码是不可能的。如果OP想要验证多个字段,那么OP应该在
ValidateFields
方法中进行验证。这个解决方案回答了为什么他的
onclick
无法阻止对OP服务器端函数的调用的问题。此外,OP还没有发布任何要验证的实际字段,所以你对需要验证的字段的猜测和我的一样好。我只是想理解OP所说的“很多次”是什么意思。没必要生气。验证更多的空字段只需几秒钟,就可以用更有效的解决方案和额外的帮助吃掉我+1.我认为这不是正确的答案:OP想要验证多个字段,使用此代码是不可能的。如果OP想要验证多个字段,那么OP应该在
ValidateFields
方法中进行验证。这个解决方案回答了为什么他的
onclick
无法阻止对OP服务器端函数的调用的问题。此外,OP还没有发布任何要验证的实际字段,所以你对需要验证的字段的猜测和我的一样好。我只是想理解OP所说的“很多次”是什么意思。没必要生气。验证更多的空字段只需几秒钟,就可以用更有效的解决方案和额外的帮助吃掉我+1.我认为这不是正确的答案:OP想要验证多个字段,使用此代码是不可能的。如果OP想要验证多个字段,那么OP应该在
ValidateFields
方法中进行验证。这个解决方案回答了为什么他的
onclick
无法阻止对OP服务器端函数的调用的问题。此外,OP还没有发布任何要验证的实际字段,所以你对需要验证的字段的猜测和我的一样好。我只是想理解OP所说的“很多次”是什么意思。不必生气。验证更多的空字段这将在每次调用时覆盖
isValidate
的值