2011-02-03 37 views
0

所以,我有這種形式在JSP:問題的的onsubmit在JSP

<form name="<%=formName%>" method="post" action="<%=actionURL%>" target="_parent" onsubmit="submitForm('<%=String.valueOf(isAbstract)%>','<%=formName%>'); return false"> 

然後我就在一個包含文件下面的JavaScript:

function submitForm(isAbstract , formName) { 
    var o = "document.forms['" + formName + "']"; 
    var form = eval(o); 
    if (isAbstract) 
    { 
      alert("Error"); 
      return; 
    } 
    if (!form.AutoName.checked) 
    { 
     if (form.name.value == "") 
     { 
      alert("Some text"); 
      return; 
     } 
    } 
} 

好,我降低函數使它更簡單,但事情是,無論我做什麼,我都不斷收到兩個參數的未定義值。這讓我瘋狂,因爲我已經在其他標籤上使用類似的代碼(除了它是在帶有onChange動作的組合框標籤上)。

有什麼想法嗎?

在此先感謝您的幫助。

+0

在瀏覽器中打開頁面,右鍵單擊*查看源代碼*,它看起來是否正確?你應該**不**看到那裏的任何Java/JSP代碼。 – BalusC 2011-02-03 12:19:12

回答

1

我看到您通過使用target屬性將表單提交給父框架。你是否將孩子iframe的值提交給父窗口?如果是,這個表單是否存在於父框架中?

同樣,您可以簡單地傳遞「this」並將其作爲表單對象進行訪問。

例如,

<form onsubmit="submitForm(this)"> 

function submitForm(formObj){ 
    var fieldTxt1Value = formObj.txt1.value; 

}

+0

我在這條評論中做線回報有困難。感謝您的回覆,但這並不奏效。我正在處理的應用程序是一個巨大的框架沙拉,因此我將這些值提交給父框架集。無論哪種方式,結果頁面的HTML來正確評估爲'onSubmit = submitForm(1,'engDoc')',在我看來,這應該足以讓JavaScript接收值。但是,即使我替換爲「this」,它也評估爲未定義。 – 2011-02-03 02:38:16

0

嘗試把一個 return false; 在你FUNC結束。

查看你的代碼,你正在測試第一個參數是否爲真。但它始終是一個字符串,因爲你在通話中寫了引號。這是你想要的?

+0

不是真的,我希望它評估爲真或假。然而,我看不到這個問題,因爲無論我做什麼,即使HTML顯示JSP變量的正確值(formName和isAbstract分別計算爲'engDoc'和'true'),當我嘗試調試javascript與螢火蟲我只看到「未定義」的功能內的一切。 – 2011-02-03 02:47:17