我正在开发一个Symfony应用程序,在该应用程序中我有一个表,该表中的每一行都有一个选择select
的值和一个button
来启动一个带有Jquery的事件来保存数据库中的数据。
点击事件将是下一个:
$(document).on('click',"#contenedor_registro_Ngrupos button",function(event){
// Here some checks are made (with ajax request) and if you can not change the value is added to select a class to indicate the error.
});
如果我更改了select
和点击按钮的值,那么一切都正确完成。保存数据或添加的类显示错误。
问题我必须要进行更改并自动保存。为此,我创建了一个select
要更改,更改值以选择所有表,还有一个button
应该运行表的所有按钮。
我使用“触发器”来模拟点击表格中的所有按钮,如下所示:
$(document).on('click',"#button_all",function(event){
$("contenedor_registro_Ngrupos select[class='modified']").each(function(){
$(this).closest("tr").find("button").trigger("click");
});
});
但我遇到的问题是当运行触发器并模拟点击时,只会将错误添加到要显示错误的最后一项,但不会添加上述内容。我试过alert();如果添加了错误的类,那么在函数内跟踪进程和站立执行以显示警报,所以我猜这将是每个实现Trigger的问题,这没有给出模拟功能执行单击按钮的时间。
我想知道如何解决这个问题,或者是否有另一种方法可以自动运行按钮的点击事件,而无需手动点击所有按钮。
* HTML:
<div id="contenedor_registro_Ngrupos" class="derecha contenedor_registro">
<div>
<div id="cabecera_lista">
<h2>Educación Infantil</h2>
</div>
<div>
<table class="records_list">
<thead>
<tr>
<th></th>
<th>Curso</th>
<th>Nivel</th>
<th>Nº Grupos</th>
<th></th>
</tr>
</thead>
</table>
<div class="inner_table">
<table>
<tbody>
<tr>
<td>
<span class="oculto">*</span>
</td>
<td>3 años</td>
<td>Infantil</td>
<td>
<select id="Ngrupo">
<option value="1" selected="selected">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</td>
<td>
<button>Guardar</button>
</td>
</tr>
<tr>
<tr>
<td>
<span class="oculto">*</span>
</td>
<td>4 años</td>
<td>Infantil</td>
<td>
<select id="Ngrupo">
<option value="1" selected="selected">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</td>
<td>
<button>Guardar</button>
</td>
</tr>
<tr> //The same above code
<tr> //The same above code
<tr> //The same above code
<tr> //The same above code
</tbody>
</table>
</div>
</div>
</div>
*图片:
选择时(你看到“3”应该显示“1”以选择该值,但在进行图像捕获之前无意中更改。并且三个值“1”为橙色,之前有另一个值,并且更改它们是添加了颜色的修改后的类。)
当我点击全部保存(“Guardar Todo”按钮)
当我点击保存每个按钮(“Guardar”按钮)
时问题不在于函数或选择器,我遇到的问题是如何自动调用以模拟所有按钮的修改,这些按钮之前已添加到其他函数中。
答案 0 :(得分:1)
jQuery.ajax(): - 执行异步HTTP(Ajax)请求。 Ajax设置是一组配置Ajax请求的键/值对。
Ajax设置选项 -
async(默认值:true):
默认情况下,所有请求都是异步发送的(默认设置为true)。如果需要同步请求,请设置此选项 false 。
请注意,同步请求可能会暂时锁定浏览器,并在请求处于活动状态时禁用任何操作。
在您的情况下,您尝试通过触发事件及时点击多个请求。因此,您可以从服务器获得适当的响应来处理它。