javascript - 选择选项时如何防止单击事件执行?
问题描述
我有一个在输入商店和日期范围时动态填充的选择,我对其进行配置,以便在单击事件按下相同的选择后,与员工一起完成选择。问题出现了,当我加载员工列表并选择任何一个时,ajax 请求会再次执行,它会自动将我更改为列表中的第一个。一个例子是,当我单击选择时,它会显示 a、b 和 c,当我单击 c 时,它会选择 a。我在某些页面上阅读过有关使用 one 事件的信息,但问题是,如果我更改商店,我仍然会看到首先选择的商店的员工,我也尝试了更改事件,但它没有直接填充员工,我用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);
});
});
推荐阅读
- python - list' 对象没有属性 'statistics'
- linux - Calculate cgroups to run make on max cores/jobs
- angular - Mat-Select 仅在单击底线时打开
- kubernetes - Kubernetes k8s 上的 Akka。调度宕机的不可达节点
- java - 如何将文本文件转换为 arff 文件?
- java - 谁能检查我是否正确链接了我的构造函数
- django - 如何从 Wagtail 中的另一个块渲染子块模板
- scala - 是否可以使用 scala-sbt 在开发模式下发布本地?
- ios - 在 Swift 中将小数点后的逗号和零值添加到千位后的数字字符串中
- excel - 用逗号分隔显示 [h]:mm 数字格式数千小时