簡體   English   中英

選擇選項時如何防止單擊事件執行?

[英]How to prevent click event from executing when selecting an option?

我有一個 select 在輸入商店和日期范圍時動態填充,我對其進行配置,以便在按下相同的 select 事件后,與員工一起完成 select。 問題出現了,當我加載員工列表和 select 任何一個時,再次執行 ajax 請求並自動將我更改為列表中的第一個。 例如,當我單擊 select 時,它會顯示 a、b 和 c,當我單擊 c 時,它會選擇 a。 我在某些頁面上閱讀過有關使用一個事件的信息,但問題是,如果我更改商店,我仍然會看到首先選擇的商店的員工,我也嘗試了更改事件,並且直接沒有填充員工,我用e.preventDefault、e.stopImmediatePropagation和e.stopPropagation()試過了,還是不行。 我分享代碼,看看你是否可以幫助我。 非常感謝。

$(document).ready(function(){
                $("#user").on("click", function(e) {
                        var dFec = $('#dFec').val();
                        var hFec = $('#hFec').val();
                        var store= $('#store').val();
                    fillUser(store,dFec,hFec);
                });
            });
function fillUser(store,dFec,hFec){
            var request = $.ajax({
                                url: "getUser.php",
                                method: "POST",
                                data: {store: store, dFec:dFec, hFec:hFec},
                                dataType: "html",
                                error: function(){
                                    alert("error");
                              },
                            });
                            request.done(function( msg ) {
                                $( "#user" ).html(msg);
                                });
                    }

HTML

            <h5 class="h3 font-weight-normal text-white text-center bg-info" style="width:35%; margin:auto;">Store</h5>
            <div class="form-group text-center">
                <select name="store" id="store" class="form-control form-control-sm" style="width:35%; margin:auto;">
                    <option value="0">Select Store</option>
                        <?php while($row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)) { ?>
                            <option value="<?php echo $row['id_store']; ?>"><?= $row['nameStore']; ?></option>
                        <?php } ?>
                </select>
            </div>
            <h5 class="h3 font-weight-normal text-white text-center bg-info" style="width:35%; margin:auto;">Fecha</h5>     
            <table class="table table-sm text-center" style="margin:auto; width:35%">
                <tr>
                    <th>From</th>
                    <th>To</th>
                </tr>
            <tr>
                <div id="picker"></div>
                <td><input name="dFec" id="dFec" readonly="readonly" style="text-align:center"></td>
                <div id="picker1"></div>
                <td><input name="hFec" id="hFec" readonly="readonly" style="text-align:center"></td>
            </tr>
    <div id="other">
    </div>
</table>

            <h5 class="h3 font-weight-normal text-white text-center bg-info" style="width:35%; margin:auto;">user</h5>
                <div class="form-group text-center">
                    <select name="user" id="user" class="form-control form-control-sm" style="width:35%; margin:auto;"></select>
                </div>

獲取Usuario.php

//query and stmt are at beggining of the code
    $store = $_POST['store'];
    $dFec = date("Ymd", strtotime($_POST['dFec']));
    $hFec = date("Ymd", strtotime($_POST['hFec']));

    while ($rowB = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))
    {
        $html.= "<option value='".$rowB['user']."'>".$rowB['user']."</option>";
    }
        echo $html;

改變一些東西並讓它以這種方式工作,我希望它會為其他需要它的人服務。 我感謝您的合作。 問候

            $(document).ready(function(){
                $("#store").change(function(){
                        var dFec = $('#dFec').val();
                        var hFec = $('#hFec').val();
                        var store= $('#store').val();
                        fillUser(store,dFec,hFec);
                    });
                }); 

            $(document).ready(function(){
                $("#hFec").change(function(){
                        var dFec = $('#dFec').val();
                        var hFec = $('#hFec').val();
                        var store= $('#store').val();
                        fillUser(store,dFec,hFec);
                    });
                }); 
                
            $(document).ready(function(){
                $("#dFec").change(function(){
                        var dFec = $('#dFec').val();
                        var hFec = $('#hFec').val();
                        var store = $('#store').val();
                        fillUser(store,dFec,hFec);
                    });
                }); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM