当我点击“应用”按钮时,我希望将不同的操作链接到不同的选项值,这是我的代码:
<select class="input-sm form-control" id="pendingbulk">
<option value="0">Bulk Actions</option>
<option value="1">Accept</option>
<option value="2">Reject</option>
<option value="3">Report</option>
</select>
<button class="btn btn-sm btn-default" id="pendingapply">Apply</button>
<script>
$("#pendingapply").onclick(function() {
var action = $('#pendingbulk').val();
if (action == 1) {
$(this).attr("action", "/accept/" + action);
} else if (action == 2) {
$(this).attr("action", "/reject/" + action);
} else if (action == 3) {
$(this).attr("action", "/report/" + action);
};
})
</script>
提前致谢。
答案 0 :(得分:3)
form
action
属性不是按钮。如果您的按钮包含在表单中,则应使用
$(this).closest('form').attr("action", ActionString);
或者,只需在表单中添加ID并使用
即可$('#YourFormId').attr("action", ActionString);
也可以使用.click()
$("#pendingapply").click(function() { //Typo here
答案 1 :(得分:2)
您正在将该属性应用于错误的元素
$(this).attr("action", "/accept/" + action);
会将action属性应用于按钮,而不是您的表单。
您需要定位表单:
$("#myFormId").attr("action", "/accept/" + action);
此外,您对jquery对象使用了错误的方法,.click
不是.onclick
答案 2 :(得分:0)
<script>
function f(){
var pendingbulk = document.getElementById("pendingbulk");
var myArrays = new Array();
myArrays[0] = pendingbulk.options[0]
myArrays[1] = pendingbulk.options[1]
myArrays[2] = pendingbulk.options[2]
myArrays[3] = pendingbulk.options[3]
for (var i=0 ; i< myArrays.length ; i++){
if (myArrays[i].selected){
location.href = myArrays[i].value
}
}
}
</script>
<select class="input-sm form-control" id="pendingbulk">
<option value="0">Bulk Actions</option>
<option value="1">Accept</option>
<option value="2">Reject</option>
<option value="3">Report</option>
</select>
<button class="btn btn-sm btn-default" id="pendingapply" onclick='f()'>Apply</button>