2016-08-23 30 views
0

我有一個表單,我有一個下拉選擇框。我的要求是當用戶從選擇框中更改選項時,表單動作應該相應地改變,並且表單應該被自動提交。我有下面的代碼在我的形式部分:chnage表單行動onchange()選項提交併提交相同的表單不工作

<form id="topicSelectionFormId" action="${headerLink.topicUrl}" method="GET"> 
    <select id="topic-option-id" class="dd-custome-new" onchange="changeTopic(this)"> 
     <c:forEach items="${headerLink.topicList}" var="topic"> 
      <option value="${topic.menuItemId}" ${topic.menuItemId == headerLink.topicId ? 'selected' : ''}>${topic.name}</option> 
     </c:forEach> 
    </select> 
</form> 

然後我的JavaScript代碼來處理表單的動作改變部分爲:

<script> 
function changeTopic(sel){ 
    var topicId = sel.value; 
    var formAction = $('#topicSelectionFormId').prop('action') + topicId; 
    alert(formAction); 
    $("#topicSelectionFormId").attr("action", formAction); 
    $("#topicSelectionFormId").submit(); 
} 
</script> 

該警報顯示所需的正確形式的行動我需要。但該表單未提交到所需的網址。有人可以幫助嗎?

回答

1

function changeTopic(sel){ 
 
     var topicId = sel.value; 
 
     document.topicSelectionFormId.action = topicId; 
 
     document.topicSelectionFormId.submit(); 
 
    }
<form name="topicSelectionFormId" action="action-default" method="GET"> 
 
     <select id="sss" onchange="changeTopic(this);"> 
 
     <option value="action1">action1</option> 
 
     <option value="action2">action2</option> 
 
     </select> 
 
    </form>

-1

我想你需要設置爲所需的URL在action..not formAction

+0

$(「#topicSelectionFormId」)ATTR(「動作」,formAction)。這裏formAction是一個變量名。 –

0

你的代碼是完全在我的IE11瀏覽器的工作。在瀏覽器的開發人員工具中,檢查網絡,您的請求是否轉到所需的url以及您收到的響應。

這不是我的答案,但我沒有足夠的聲譽您的問題下方發表評論,所以這裏寫