这是我的代码:
$(function(){
$( "#dialogLoad" ).dialog({
autoOpen: false,
modal: true,
title: 'DATE REELLE CHARGEMENT',
width: 300,
buttons: {
OK: function() {
event.preventDefault();
var regdate = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2})$|^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2}\s([0-1]\d|[2][0-3])\:[0-5]\d\:[0-5]\d)$/;
//alert($('#dateReelleChargement').val());
if(!regdate.test($('#dateReelleChargement').val()))
{
$('#errLoad').text("La date doit être au format jj/mm/aaaa");
}
else
{
//Here AJAX
alert("Here i would like to display loaded_383")
$(this).dialog("close");
}
}
},
});
$( ".loaded" ).click(function() {
$( "#dialogLoad" ).dialog( "open" );
});
});
<link href = "https://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel = "stylesheet">
<script src = "https://code.jquery.com/jquery-1.10.2.js"></script>
<script src = "https://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<div><a id="loaded_383" class="loaded" href="#">Test</a></div>
<div id ="dialogLoad">
<p>Vous devez entrer une date de chargement réel</p>
<input type="hidden" autofocus="autofocus" />
<input id="dateReelleChargement" type="text" /><br /><br />
<div id="errLoad" style="color: red;"></div>
</div>
对于我的ajax请求,我需要点击元素的ID:
$(".loaded")
如何传递变量:
$(this).attr('id)
在对话框参数中?实际上,'this'在第一个函数中不起作用,因为它会使dialogBox失效,而不是我点击的元素。
非常感谢你。
答案 0 :(得分:1)
你可以在$(function(){...})之外定义一个变量并在里面使用它。
var id;
$(function(){
$( "#dialogLoad" ).dialog({
autoOpen: false,
modal: true,
title: 'DATE REELLE CHARGEMENT',
width: 300,
buttons: {
OK: function() {
event.preventDefault();
var regdate = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2})$|^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[2][0]\d{2}\s([0-1]\d|[2][0-3])\:[0-5]\d\:[0-5]\d)$/;
//alert($('#dateReelleChargement').val());
if(!regdate.test($('#dateReelleChargement').val()))
{
$('#errLoad').text("La date doit être au format jj/mm/aaaa");
}
else
{
//Here AJAX
alert(id);
alert("Here i would like to display loaded_383")
$(this).dialog("close");
}
}
},
});
$( ".loaded" ).click(function() {
id = $(this).attr('id');
$( "#dialogLoad" ).dialog( "open" );
});
});
<link href = "https://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel = "stylesheet">
<script src = "https://code.jquery.com/jquery-1.10.2.js"></script>
<script src = "https://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<div><a id="loaded_383" class="loaded" href="#">Test</a></div>
<div id ="dialogLoad">
<p>Vous devez entrer une date de chargement réel</p>
<input type="hidden" autofocus="autofocus" />
<input id="dateReelleChargement" type="text" /><br /><br />
<div id="errLoad" style="color: red;"></div>
</div>
答案 1 :(得分:1)
这是一个不使用全局变量的更好的解决方案。您可以在对话框中设置.data()并通过它传递数据。希望这会有所帮助。
<link href = "https://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel = "stylesheet">
<script src = "https://code.jquery.com/jquery-1.10.2.js"></script>
<script src = "https://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<div><a id="loaded_383" class="loaded" href="#">Test</a></div>
<div id ="dialogLoad">
<p>Vous devez entrer une date de chargement réel</p>
<input type="hidden" autofocus="autofocus" />
<input id="dateReelleChargement" type="text" /><br /><br />
<div id="errLoad" style="color: red;"></div>
</div>
&#13;
@Transactional(propagation=Propagation.MANDATORY)
public interface MyRepository extends CrudRepository<Something, Long> {
@Override
public Something findOne(Long id);
}
&#13;
答案 2 :(得分:0)
你能不能只将id存储到变量中。这样你就不必依赖于这个&#39;这个&#39;对象
而不是:
alert($(this).attr('id'));
尝试:
var id = $(this).attr('id');
然后在到达ajax代码时使用它。在最坏的情况下,您甚至可以将变量设为全局变量。