1
我有兩種手機的各種電話信息的表單,其中包括兩個對應於我的操作類中的布爾值的複選框。如果用戶輸入兩個相同的電話號碼,則下面的javascript將自動設置第二個複選框。Struts2頁面沒有從複選框返回正確的值
if(phone1 != '' && phone1==phone2)
{
document.getElementById("phone2Type").value = document.getElementById("phone1Type").value;
document.getElementById("phone2Text").value = document.getElementById("phone1Text").value;
document.getElementById("phone2Text").checked = document.getElementById("phone1Text").checked;
if(phone2Type=='CELL' && document.getElementById('phone2Text') != null)
{
document.getElementById('phone2Text').disabled=true;
}
document.getElementById("phone2Type").disabled=true;
}
而且JSPX代碼與它一起去:
<s:checkbox id="phone1Text"
onclick="javascript:enableTextingBox()" cssClass="phoneText"
name="phoneInfo.phone1.textOptionSelected" fieldValue="true"
value="phoneInfo.phone1.textOptionSelected"
disabled="%{!phoneInfo.phone1.textOptionEnabled || inputFieldDisabled}" />
<s:checkbox id="phone2Text"
onclick="javascript:enableTextingBox()" cssClass="phoneText"
name="phoneInfo.phone2.textOptionSelected" fieldValue="true"
value="phoneInfo.phone2.textOptionSelected"
disabled="%{!phoneInfo.phone2.textOptionEnabled || inputFieldDisabled}" />
我看到的問題是,當我使用JavaScript來設置phone2Text
等於phone1Text
相應的布爾(phoneInfo.phone2.textOptionSelected
)不設置。我很困惑,因爲上面的jspx在我忘記javascript並手動選中框時正常工作。
望着參數POST方法發送的,而不是我看到:
_checkbox_phoneInfo.phone2.textOptionSelected: "true"
我希望看到的是:
phoneInfo.phone2.textOptionSelected: "true"
我不是當然,如果這是一個Struts2問題或一些我不熟悉的javascript特性。
http://stackoverflow.com/a/16461142/1654265 – 2014-09-24 15:24:37
你是否看到兩個複選框在點擊第一個複選框時被選中?你確定你的複選框沒有被禁用嗎?因爲在您禁用複選框輸入的js中存在if條件。 – 2014-09-24 19:21:59
單擊第一個複選框後,將檢查這兩個複選框。但是,第二個複選框變灰。我認爲禁用它只是一個UI效果,並沒有關係它是否實際返回一個值。 – 2014-09-24 20:02:44