【发布时间】:2010-05-24 13:47:36
【问题描述】:
我有一个对话框表单,当我打开它时,我有“添加任务”按钮,当我从一个空案例打开表单时,我想保留这个“名称”,但我想要一个按钮当我打开一个已经存在的任务时命名为“编辑此任务”。
我也想在按下回车键时使用此按钮发送表单,无论我在表单上的哪个位置。
谢谢。
【问题讨论】:
标签: jquery forms button dialog
我有一个对话框表单,当我打开它时,我有“添加任务”按钮,当我从一个空案例打开表单时,我想保留这个“名称”,但我想要一个按钮当我打开一个已经存在的任务时命名为“编辑此任务”。
我也想在按下回车键时使用此按钮发送表单,无论我在表单上的哪个位置。
谢谢。
【问题讨论】:
标签: jquery forms button dialog
$('.ajouter-tache')
.click(function() {
if($(this).attr('id_tache')!=""){
$('.ui-dialog-buttonpane button:eq(0) .ui-button-text').each(function(e, f){
$(f).html('Modifier la tache');
})
}
else {
$('.ui-dialog-buttonpane button:eq(0) .ui-button-text').each(function(e, f){
$(f).html('Ajouter une tache');
})
};
})
这就是我所做的,它可以工作,但是由于我是初学者并且没有浪费时间在 jQuery 上工作,这有点糟糕,尤其是选择器冗余和每个都没有用(但我不知道如何只取那个元素。)
【讨论】:
您需要添加更多关于“编辑此任务”如何工作的信息,因为从服务器端到客户端有一些不同的实现(在解析时填充?表单 ajax 与否?等)
如果您在提交事件上运行实际的“提交”工作,您可以利用用户在表单中按 ENTER 时的优势。 (当然除了文本区域)
<form id="myForm" onSubmit="return yourCoolSubmitFunction();" >
或
$( function() {
$('#myForm').submit(function() {
// code here that can validate or simply
return true; // submit the form
// return false won't submit, which is good for validating input
});
});
至于按钮文本,如果表单通过服务器端代码填充为“编辑表单”,那么您可以在第一次生成 html 时简单地更改按钮标签。
如果是ajax,可以在加载表单数据的时候更新按钮。
如果我仍然没有为你打中钉子,也许添加一个表单元素来检查?像<input type="hidden" name="isEdit" value="1" /> 是否处于可以检查的编辑模式?
if( $('#myForm input[name=isEdit]').val() == 1 ) ...
【讨论】:
好的,抱歉,我认为我的代码不是必需的,但看起来是^^
$("#dialog-form").dialog({
autoOpen: false,
height: 560,
width: 400,
modal: false,
buttons: {
'Add task': function() {
$(".ajax").trigger('submit');
},
'Back': function() {
$("#dialog-form").dialog('close');
}
},
open: function() {
$(this).parents('.ui-dialog-buttonpane button:eq(0)').focus();
},
close: function() {
allFields.val('').removeClass('ui-state-error');
}
});
$(".ajax").submit(
function(e) {
var datas = $(this).serialize();
$.ajax({
type: 'POST', // envoi des données en POST
url: 'Planning.php?action=ajoutTache',
data: datas, // sélection des champs à envoyer
success: function() {
$("#dialog-form").dialog('close');
location.reload();
}
});
return false; // Pour empêcher le submit vers la page 'action'
});
当任务已经存在时,我希望“添加任务”按钮变成“编辑任务”。
【讨论】: