2014-03-28 52 views
1

這裏是我的代碼:如何強制Firefox發送隱藏字段?

<s:form 
    id="deployChapters%{#chapterTree.nodeId}" 
    action="%{deployChapterUrl}" 
    theme="simple" 
    method="POST"> 
    <s:hidden name="nodeId" value"%{#chapterTree.nodeId}" /> 
</s:form> 

我提交這份表格使用Ajax。使用Firefox,隱藏字段nodeId未發送。它是與Chrome或IE。

我該如何要求FF發送隱藏字段?

回答

1

最後,這裏是我想出了一個解決方案:

  • 我檢測何時提交表單,並以編程方式向表單中添加隱藏字段。
0

Struts/JSP代碼(即服務器端代碼)不依賴於客戶端瀏覽器來呈現HTML。

因此,它是你的Javascript函數,它發送Ajax請求(post或get)與基於html表單數據的數據,這有問題。

請檢查/調試,您的Javascript代碼來解決它。

+0

THKS作出的貢獻:) – Stephan

1

添加一個提交按鈕的形式,改變id屬性這麼容易與jQuery選擇它,重視處理

<s:form 
    id="deployChaptersForm" 
    action="%{deployChapterUrl}" 
    theme="simple" 
    method="POST"> 
    <s:hidden name="nodeId" value"%{#chapterTree.nodeId}" /> 
    <s:submit/> 
</s:form> 
<script type="text/javascript"> 
// Attach a submit handler to the form 
$("#deployChaptersForm").submit(function(event) { 
    //Stop form from submitting normally 
    event.preventDefault(); 
    //Get some values from elements on the page: 
    var $form = $(this), 
    value = $form.find("input[name='nodeId']").val(), 
    url = $form.attr("action"); 
    //Send the data using post 
    var thePost = $.post(url, {nodeId: value}); 
    //Handle results in data 
    thePost.done(function(data) { 
    alert(data); 
    }); 
}); 
</script> 
+0

我從http://malsup.com/jquery/form/#api – Stephan

+0

使用'ajaxSubmit'我不熟悉這個插件,但我認爲你可以使用API來部分序列化'nodeId'的表單並將其替換爲'$ .post'的第二個參數。 –