0
我正在使用SharePoint 2010並具有自定義的newform.aspx和editform.aspx,我使用JQuery創建多個選項卡,這是由於字段數量和表單長度的限制。SharePoint 2010/JavaScript使用警報進行多個字段驗證
我遇到的一個問題是如何在用戶試圖保存表單時直觀地提醒用戶,但在某些(或所有必填字段)中未輸入值。我在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 else語句是不是爲了實現最有效的方法。將利用開關箱的路要走嗎?可能循環?我該如何去做這件事(我對JavaScript不太熟練)?
感謝您的幫助!