[英]SharePoint 2010/JavaScript Multiple Field Validations with Alerts
我正在使用SharePoint 2010,並且由於字段的數量和表單的長度而使用JQuery創建了多個選項卡,因此具有自定義的newform.aspx和editform.aspx。
我遇到的問題之一是當用戶嘗試保存表單但未在某些(或所有必填字段)中輸入值時如何以視覺方式建議用戶。 我正在使用SharePoint中的OOTB驗證功能來指示需要解決的字段,但是由於許多必填字段現在位於不同的選項卡上,因此我想彈出一個警報窗口,指出在保存之前需要解決哪些必填字段表格。
通常,我只會處理兩個或三個必填字段,但在這種情況下,我將處理八個必填字段,甚至可能更多。 過去,我會使用JavaScript if else語句執行以下操作:
function PreSaveAction() {
var tbTitle = getTagFromIdentifierAndTitle("input", "TextField", "Title");
var tbVisitor = getTagFromIdentifierAndTitle("input", "TextField", "Visitor"); {
if (tbTitle.value == "" && tbVisitor.value == "") {
alert(tbTitle.title + ' is a required field' + '\n' + tbVisitor.title + ' is a required field');
return true;
} else {
if (tbTitle.value == "") {
alert(tbTitle.title + ' is a required field');
return true;
} else {
if (tbVisitor.value == "") {
alert(tbVisitor.title + ' is a required field');
return true;
} else {
return true;
}
}
}
}
}
function getTagFromIdentifierAndTitle(tagName, identifier, title) {
var len = identifier.length;
var tags = document.getElementsByTagName(tagName);
for (var i = 0; i < tags.length; i++) {
var tempString = tags[i].id;
if (tags[i].title == title && (identifier == "" || tempString.indexOf(identifier) == tempString.length - len)) {
return tags[i];
}
}
return null;
}
由於我要解決的必填字段太多,因此我知道,嵌套多個if語句不是最有效的方法。 利用開關盒會是走的路嗎? 可能會循環嗎? 我將如何去做(我不太精通JavaScript)?
我在這里先向您的幫助表示感謝!
您不需要嵌套的語句。 一次一次遍歷您的字段以建立警報,然后觸發它:
var alertString="";
if (tbTitle.value == "") {
alertString+= tbTitle.title + ' is a required field' + '\n';
}
if (tbVisitor.value == "") {
alertString+= tbVisitor.title + ' is a required field' + '\n';
}
...
// After going through all fields:
if (alertString) {alert(alertString);}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.