如何在不同的选项上设置不同的操作?

时间:2014-08-17 16:58:09

标签: javascript jquery action

当我点击“应用”按钮时,我希望将不同的操作链接到不同的选项值,这是我的代码:

<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>

提前致谢。

3 个答案:

答案 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>
相关问题