我有兩個jQuery文件 - 在userNewItemForm和adminNewItemForm上調用一個[newForms_jQuery.js],在userEditItemForm和adminEditItemForm上調用另一個[editForms_jQuery.js]。JavaScript案例語句中的邏輯OR運算符
我想將這兩個文件合併成一個jQuery文件,我想使用case語句。
我發現語法將
switch(n)
{
case 1:
execute code block 1
break;
case 2:
execute code block 2
break;
default:
code to be executed if n is different from case 1 and 2
}
我收到文件的名稱來區分BTW新建和編輯表單,然後做基礎的東西。我首先想到的是使用邏輯或在我的情況,如:
case (url="userNewItemForm.aspx") || (url="adminNewItemForm.aspx"):
//do something
case (url="userEditItemForm.aspx") || (url="adminEditItemForm.aspx"):
//do soemthing else
不過,後來我發現https://stackoverflow.com/a/1806279/429694。所以,我修改我的腳本:
switch(url)
{
case "userNewItemForm.aspx": //intentionally left blank to fall through
case "adminNewItemForm.aspx":
// do new record stuff
break;
case "userEditItemForm.aspx": //intentionally left blank to fall through
case "adminEditItemForm.aspx":
//do edit record stuff
break;
default:
alert(url);
}
這似乎工作,但是在進一步的測試,我發現,case語句沒有休息;沒有像我預料的那樣下降。有什麼建議?
UPDATE1: 按照@ jbabey的建議,我將腳本修改爲以下內容,但我認爲它解決了我的問題,但它並不完全。看起來,當我打開OR語句的第二部分中的url時,它不會選取名稱,而是執行默認情況。
這裏是我當前的代碼
function getFileName()
{
url = document.location.href; //gets the full url. URL is global var after function called
url = url.substring(0, (url.indexOf("#") == -1) ? url.length : url.indexOf("#")); //this removes the anchor at the end, if there is one
url = url.substring(0, (url.indexOf("?") == -1) ? url.length : url.indexOf("?")); //this removes the query after the file name, if there is one
url = url.substring(url.lastIndexOf("/") + 1, url.length); //this removes everything before the last slash in the path
return url; //returns filename
}
$(document).ready(function(){
getFileName();
switch (url)
{
case ("eacrfNew_jQuery.aspx" || "newItem_jQuery.aspx"):
// do new record stuff
break;
case ("eacrfEdit_jQuery.aspx" || "editItem_jQuery.aspx"):
//do edit record stuff
break; //close edit record stuff
default:
// which file did it open?
alert(url);
}
}); // close doc.ready
最後更新:
你不能用邏輯運算符case語句相反,你必須IF ... ELSE詳見http://www.naveen.com.au/javascript/jquery/switch-case-in-jquery/319使用。
function getFileName()
{
url = document.location.href; //gets the full url into global var
return url; //returns filename
}
function clearID()
{
//clears field values
}
$(window).load(function(){
$(document).ready(function(){
getFileName();
if ((url === "eacrfNew_jQuery.aspx") || (url === "newItem_jQuery.aspx")) {
// do new record stuff
} else if ((url === "eacrfEdit_jQuery.aspx") || (url === "editItem_jQuery.aspx")) {
// do edit record stuff
} else {
/// default: which file did it open?
alert(url);
}
}); // close doc.ready
}); // close window.load
什麼了你的期望。發生了什麼? – Neal 2012-01-04 19:13:30
@Neal:我期待如果URL是userNewItemForm,它會執行下面的「新記錄的東西」adminNewItemForm – jg100309 2012-01-04 19:22:26