0

我有一个多行表,每一行都有一个下拉列表。我是 javascript 新手,无法从行中检索所选值。知道怎么做吗?提前致谢。

代码:

function chng_page(serialNum, rowid)
{
    alert(rowid);
    alert(serialNum);
    var select_index = document.getElementById('orderStatus').selectedIndex; 
    //get the value of selected option
    var option_value = document.getElementById('orderStatus').options[select_index].value;

    //redirect with value as a url parameter
    window.location = 'orderStatus.php?serialNum=' + serialNum + '&status=' + option_value;
}
</script>

//下拉列表代码

<select id="orderStatus" name="orderStatus" onchange="chng_page(<?php echo $serialNum?    >, this.parentNode.parentNode.rowIndex)">
   <option value="Pending" <?php echo ($status == "Pending") ? ' selected="selected"' : ''; ?>>Pending</option>
   <option value="Cooking" <?php echo ($status == "Cooking") ? ' selected="selected"' : ''; ?>>Cooking</option>
   <option value="On The Way" <?php echo ($status == "On The Way") ? ' selected="selected"' : ''; ?>>On The Way</option>
   <option value="Delivered" <?php echo ($status == "Delivered") ? ' selected="selected"' : ''; ?>>Delivered</option>   
</select>
4

3 回答 3

3

您没有提到每行中的选择元素是否具有唯一的 id,但它以某种方式在您的代码中显示它们确实如此。
在这种情况下,您可以使用 JQuery(一种流行的 JavaScript 框架)来检索选定的值。
假设您已在 HTML 中包含 JQuery 文件,并将事件处理程序附加到 select 元素(为使其更容易,将当前 select 元素的 id 作为函数中的参数传递),请执行以下操作:

var selected_value = $("#id_of_select_element option:selected").val();

如果选择元素的 id 是唯一的,那一行代码肯定可以工作。

于 2012-05-10T15:01:09.703 回答
0

您在所有表格行中的下拉列表具有相同的名称/ID

于 2012-05-10T15:02:26.350 回答
0

如果每一行都有一个具有相同 id-> #orderStatus 的下拉列表,你应该试试这个,

function chng_page(serialNum, ddlist)
{
    var rowid = ddlist.parentNode.parentNode.rowIndex
    alert(rowid);
    alert(serialNum);
    var select_index = ddlist.selectedIndex; 
    //get the value of selected option
    var option_value = ddlist.options[select_index].value;

    //redirect with value as a url parameter
    window.location = 'orderStatus.php?serialNum=' + serialNum + '&status=' + option_value;
}

<select name="orderStatus" onchange="chng_page(<?php echo $serialNum?>, this)">
   <option value="Pending" <?php echo ($status == "Pending") ? ' selected="selected"' : ''; ?>>Pending</option>
   <option value="Cooking" <?php echo ($status == "Cooking") ? ' selected="selected"' : ''; ?>>Cooking</option>
   <option value="On The Way" <?php echo ($status == "On The Way") ? ' selected="selected"' : ''; ?>>On The Way</option>
   <option value="Delivered" <?php echo ($status == "Delivered") ? ' selected="selected"' : ''; ?>>Delivered</option>   
</select>
于 2012-05-10T15:09:06.520 回答