javascript - 从 select 获取最接近的输入并将其放入 $.post 中

标签 javascript jquery ajax forms .post

好的。请参阅底部屏幕截图以了解前端的插图。我在这里想做的是,当用户在选择表单中进行选择时,即:选择已接收,我想直接获取选择表单底部的输入框的值并发送它通过 $.post 到另一个脚本以便我处理它。

我似乎无法通过 $.post 传递数据来读取输入框中的值。主要焦点应该在 $.post 区域。我尝试使用 $('.order_item_id').val();在我的 $.post 数据中,但我只获得 first 输入框下的值,无论我从哪个选择框进行选择。

ScreenShot

这是我的 javascript 和 php 部分。

.js

$('.order_stat_sel').change(function(){
    var closest_div=$(this).closest('div.order_receipt');
    var closest_selectbox=$(this).closest('.order_stat_sel');       
    if($('.select_received:selected').length>0){
        if(confirm('Confirm Receipt of this item?')){
            $.post("/seller/buyer_cfm_receive.php",{order_item_id: $(this).closest('.order_item_id').val()}, function(data) {
                alert("Congrats, Order Item Completed" + data);
                closest_div.append('<p>Completed</p>');
                closest_selectbox.remove().fadeOut("slow");
            });
        }else{
            $('.order_stat_sel').val('p');
        }
    }
});

php

            if($this->orderstatuses[$item->order_status]!='received'){
                echo '<select class="order_stat_sel" name="order_status">';
                    echo '<option class="select_pending" value="'.$pendingitem_state[2].'">'.$pendingitem_state[3].'</option>';
                    echo '<option class="select_received" value="'.$enditem_state[2].'">'.$enditem_state[3].'</option>';            
                echo '</select>';
            }?>
            <form class="send_order_cfm_input">
                <input class="order_item_id" name="order_item_id" value="<?php echo $item->virtuemart_order_item_id;?>" type="text" readonly="readonly">
            </form>

感谢任何帮助

最佳答案

.closest()找到该元素最接近的祖先,但您实际上正在搜索 descendantneighbour :

$.post("/seller/buyer_cfm_receive.php",
    {
        order_item_id:$(this)
                      .next(".send_order_cfm_input")
                      .find('.order_item_id').val()
    },
    function() {
        /*...*/
    }
);

关于javascript - 从 select 获取最接近的输入并将其放入 $.post 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12617248/

相关文章:

javascript - 附加文件停止工作 octobercms 电子邮件 ajax 表单

javascript - 在 React 中更改下拉选项不会应用样式定位选定选项

javascript - 选择一个元素 | Javascript 与 Jquery

javascript - 奥里利亚网页包 : how to load images

javascript - `find()` undefined 不是函数

javascript - 当页面超过宽度时刷新页面

javascript - 从 Angular $http 获取 promise 数据

javascript - 使用 JavaScript 创建关联数组

javascript - 如果 session 过期,如何从ajax响应自动重定向网页?

javascript - AJAX 窗口无法使用西里尔字母 - 为什么?