javascript
  • struts2
  • 2013-04-03 185 views 2 likes 
    2

    我嘗試創建一個編輯鏈接,當它被點擊時,它以只讀模式打開該行的詳細信息。JavaScript:只讀屬性沒有設置

    這裏是鏈接:

    <c:set var="deletableBook" value="0"/> 
    
    <a href="" title="Edit Book Info" onClick='resetDateAndMakeReadOnly(${deletableBook}); return performAction(${item.bookId}, "bookEdit");'>Edit</a> 
    

    下面是被調用函數:

    function resetDateAndMakeReadOnly(allEditable) {  
    var e22 = document.getElementById('book_Date'); 
    var e3 = document.getElementById('book_type'); 
    var e4 = document.getElementById('book_Number'); 
    if (allEditable){ 
        e22.readOnly=false; 
        e3.disabled=false; 
        e4.readOnly=false; 
        alert("read and write"); 
    } else { 
        e22.readOnly=true; 
        e3.disabled=true; 
        e4.readOnly=true; 
        alert("readOnly new"); 
    } 
    e22.value = "<c:out value='${params.book_Date}'/>"; 
    return false; } 
    

    而且目前似乎沒有任何改變時,這種方法是跑了。我已經確認它使它成爲邏輯的正確部分,但事情仍然是可編輯的。

    +0

    而問題......? – gdoron 2013-04-03 21:42:43

    +0

    @gdoron對不起更新的描述。基本上將它設置爲只讀似乎不會使其只讀 – Ace 2013-04-03 21:44:00

    +0

    任何機會都不會產生重複的ID(如果您有多行)?還要確保將後端標記解析爲您期望的HTML和值。 – 2013-04-03 21:47:35

    回答

    2

    這是因爲您正在使用鏈接空href來觸發您的JavaScript函數,它將重新加載您的頁面。在href內使用javascript:void(0);

    <a href="javascript:void(0);" title="Edit Book Info" onClick='resetDateAndMakeReadOnly(${deletableBook}); return performAction(${item.bookId}, "bookEdit");'>Edit</a> 
    
    0

    屬性deletableBook不是布爾值,也不是您在javascript函數中預期的false。要切換變量在動作

    session.put("allEditable", !(session.get("allEditable")==null?Boolean.FALSE:(Boolean)session.get("allEditable"))); 
    

    然後用

    $(document).ready(function(){ 
        resetDateAndMakeReadOnly(<s:property value="%{#session.allEditable}"/>); 
    }); 
    

    將重置域取決於allEditable屬性時重新加載頁面。但是,這

    <s:a href="" title="Edit Book Info" onClick="resetDateAndMakeReadOnly(%{#session.allEditable});">Make readonly</s:a> 
    

    不會重新載入頁面,並保持您在allEditable會話屬性有值。這句法可能會有點迷惑IDE,但正確評價OGNL表達和呈現像

    <a title="Edit Book Info" onClick="resetDateAndMakeReadOnly(false);">Make readonly</a> 
    

    沒有href屬性,這就是爲什麼在頁面不會被重新裝入。

    在JSP中的元素應該可以找到它們的id屬性應該設置。

    相關問題