2012-02-23 67 views
0

我希望能夠測試是否定義了表單,這意味着它找到了名稱爲'data'的表單 我們該怎麼做?如果第一個表單名稱未定義,我該如何測試第二個表單名稱?

然後,如果沒有找到我可以測試其他表單名稱並設置該命名錶單上的操作。

function edit_OnClick() { 
    var theForm = window.document.forms['data']; 

    theForm.action = "checkout.asp"; 
    theForm.submit(); 

    return false; 
} 

可以發佈後續的upsoverflow嗎?

這就是我想出的使用你的建議,但它不是像我計劃的那樣切換。

function edit_OnClick() { 
     var theForm = window.document.forms['data']; 
     if (typeof (theForm !== "undefined")) { 
      theForm.action = "checkout.asp"; 
      theForm.submit(); 

      return false; 
     }else { 
     var theForm = window.document.forms['form_bml']; 
      theForm.action = "checkout.asp"; 
      theForm.submit(); 

      return false; 
     } 
    } 

回答

0

你可以使用:

var theForm = document.forms['data']; 

if (theForm) { 
    // do stuff 
} else { 
    theForm = document.forms['form_bml']; 
    if (theForm) { 
    // do other stuff 
    } 
} 

如果這兩個動作是相同的,那麼:

var theForm = document.forms['data'] || document.forms['form_bml']; 
if (theForm) { 
    // do stuff 
} 
1
if (theForm) { .. } 

應該夠了。如果你想成爲安全起見,你可以去

if (typeof (theForm) !== "undefined") { ... } 
+0

第二條語句總是'true'(它應該是''undefined'')! – 2012-02-23 20:42:49

+0

'typeof'是一個操作符,而不是一個函數,因此表達式不需要分組操作符(儘管這樣做是安全的)。 – RobG 2012-02-23 21:08:23

相關問題