我有这段代码:
<div class="tableperso input-append">
<form id="perso" action="form/perso.php" method="post">
<table class="table2 table-bordered">
<tr>
<td>
<input class="input-medium" type="text" placeholder="CMS" name="cmsperso" id="cmsperso" pattern="[-.,_ a-zA-ZáàâäãéèêëíìîïóòôöõúùûüýÿÁÀÂÄÃÉÈÊËÍÌÎÏÓÒÔÖÕÚÙÛÜÝ]+" />
<input class="separ2 input-medium" type="text" placeholder="Chef de Quart" name="chefdequart" id="chefdequart" pattern="[-.,_ a-zA-ZáàâäãéèêëíìîïóòôöõúùûüýÿÁÀÂÄÃÉÈÊËÍÌÎÏÓÒÔÖÕÚÙÛÜÝ]+" />
<input class="separ2 input-medium" type="text" placeholder="Adjoint" name="adjoint" id="adjoint" pattern="[-.,_ a-zA-ZáàâäãéèêëíìîïóòôöõúùûüýÿÁÀÂÄÃÉÈÊËÍÌÎÏÓÒÔÖÕÚÙÛÜÝ]+" />
</td>
<td class="button">
<button id="persobtn" type="submit" name="persobtn" class="btn"><i class="icon-ok"></i></button>
</td>
</tr>
</table>
</form>
</div>
<script type="text/javascript">
$(function () {
$('#perso').submit(function () {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function(data){
data = $.parseJSON(data);
if(data.status == "ok") {
var now = new Date();
var hours = now.getHours();
if (now.getHours() <= 9) {
var hours = '0'+now.getHours();
}
else {
var hours = now.getHours();
}
var minutes = now.getMinutes();
if (now.getMinutes() <= 9) {
var minutes = '0'+now.getMinutes();
}
else {
var minutes = now.getMinutes();
}
var cmsperso = $("#cmsperso").val();
var chefdequart = $("#chefdequart").val();
var adjoint = $("#adjoint").val();
var emptycmsperso = $("#cmsperso").val().length == 0;
var emptychefdequart = $("#chefdequart").val().length == 0;
var emptyadjoint = $("#adjoint").val().length == 0;
if (emptycmsperso && emptychefdequart && emptyadjoint) {
$('#persobtn').addClass('btn-danger')
.delay(1000)
.queue(function() {
$(this).removeClass('btn-danger');
$(this).dequeue();
});
}
else if (emptycmsperso && emptychefdequart) {
$('#persobtn').addClass('btn-success')
.delay(1000)
.queue(function() {
$(this).removeClass('btn-success');
$(this).dequeue();
});
var nouvelle_ligne = $('<tr><td class="thtime">'+hours+'h'+minutes+'</td><td>Prise de fonction de <b class="textepersoadj">'+adjoint+'</b> en tant qu\'adjoint.</td><td class="button"><button class="editperso"><i class="icon-pencil"></i></button></td><td class="button"><button class="trashperso"><i class="icon-trash"></i></button></td></tr>').fadeIn('fast');
}
else if (emptychefdequart && emptyadjoint) {
$('#persobtn').addClass('btn-success')
.delay(1000)
.queue(function() {
$(this).removeClass('btn-success');
$(this).dequeue();
});
var nouvelle_ligne = $('<tr><td class="thtime">'+hours+'h'+minutes+'</td><td>Prise de fonction de <b class="textepersocms">'+cmsperso+'</b> en tant que CMS.</td><td class="button"><button class="editperso"><i class="icon-pencil"></i></button></td><td class="button"><button class="trashperso"><i class="icon-trash"></i></button></td></tr>').fadeIn('fast');
}
else if (emptycmsperso && emptyadjoint) {
$('#persobtn').addClass('btn-success')
.delay(1000)
.queue(function() {
$(this).removeClass('btn-success');
$(this).dequeue();
});
var nouvelle_ligne = $('<tr><td class="thtime">'+hours+'h'+minutes+'</td><td>Prise de fonction de <b class="textepersocdq">'+chefdequart+'</b> en tant que Chef de Quart.</td><td class="button"><button class="editperso"><i class="icon-pencil"></i></button></td><td class="button"><button class="trashperso"><i class="icon-trash"></i></button></td></tr>').fadeIn('fast');
}
else if (emptycmsperso) {
$('#persobtn').addClass('btn-success')
.delay(1000)
.queue(function() {
$(this).removeClass('btn-success');
$(this).dequeue();
});
var nouvelle_ligne = $('<tr><td class="thtime">'+hours+'h'+minutes+'</td><td>Modification de l\'équipe de Quart : <b class="textepersocdq">'+chefdequart+'</b> prend la fonction de Chef de Quart et <b class="textepersoadj">'+adjoint+'</b> prend celle d\'adjoint.</td><td class="button"><button class="editperso"><i class="icon-pencil"></i></button></td><td class="button"><button class="trashperso"><i class="icon-trash"></i></button></td></tr>').fadeIn('fast');
}
else if (emptychefdequart) {
$('#persobtn').addClass('btn-success')
.delay(1000)
.queue(function() {
$(this).removeClass('btn-success');
$(this).dequeue();
});
var nouvelle_ligne = $('<tr><td class="thtime">'+hours+'h'+minutes+'</td><td>Modification de l\'équipe de Quart : <b class="textepersocms">'+cmsperso+'</b> prend la fonction de CMS et <b class="textepersoadj">'+adjoint+'</b> prend celle d\'adjoint.</td><td class="button"><button class="editperso"><i class="icon-pencil"></i></button></td><td class="button"><button class="trashperso"><i class="icon-trash"></i></button></td></tr>').fadeIn('fast');
}
else if (emptyadjoint) {
$('#persobtn').addClass('btn-success')
.delay(1000)
.queue(function() {
$(this).removeClass('btn-success');
$(this).dequeue();
});
var nouvelle_ligne = $('<tr><td class="thtime">'+hours+'h'+minutes+'</td><td>Modification de l\'équipe de Quart : <b class="textepersocms">'+cmsperso+'</b> prend la fonction de CMS et <b class="textepersocdq">'+chefdequart+'</b> prend celle de Chef de Quart.</td><td class="button"><button class="editperso"><i class="icon-pencil"></i></button></td><td class="button"><button class="trashperso"><i class="icon-trash"></i></button></td></tr>').fadeIn('fast');
}
else {
$('#persobtn').addClass('btn-success')
.delay(1000)
.queue(function() {
$(this).removeClass('btn-success');
$(this).dequeue();
});
var nouvelle_ligne = $('<tr><td class="thtime">'+hours+'h'+minutes+'</td><td>Modification de l\'équipe de Quart : <b class="textepersocms">'+cmsperso+'</b> prend la fonction de CMS, <b class="textepersocdq">'+chefdequart+'</b> prend celle de Chef de Quart et <b class="textepersoadj">'+adjoint+'</b> prend celle d\'adjoint.</td><td class="button"><button class="editperso"><i class="icon-pencil"></i></button></td><td class="button"><button class="trashperso"><i class="icon-trash"></i></button></td></tr>').fadeIn('fast');
}
$('#tablemc').append(nouvelle_ligne);
}
else {
alert(data.error);
}
}
});
return false;
});
$(document).on("click", ".trashperso", function(e){
e.preventDefault();
var $ligneParent = $(this).parent().parent();
trashperso($ligneParent);
});
function trashperso(aLigneToTrash) {
if (confirm("Vous allez supprimer définitivement cette ligne !")) {
var cmsperso = aLigneToTrash.children().children('.textepersocms').html();
var chefdequart = aLigneToTrash.children().children('.textepersocdq').html();
var adjoint = aLigneToTrash.children().children('.textepersoadj').html();
$.ajax({
type: "POST",
url: "form/delete/deleteperso.php",
data: { cmsperso: cmsperso, chefdequart: chefdequart, adjoint: adjoint },
cache: false,
success: function() {
aLigneToTrash.fadeOut('slow', function() {
aLigneToTrash.remove();
});
}
});
return false;
}
}
$(document).on("click", ".editperso", function(f){
f.stopPropagation();
var $CellParent = $(this).closest('td').prev().prev();
editperso1($CellParent);
});
function editperso1(aCellToEdit) {
aCellToEdit.editable({
mode: 'inline',
inputclass: 'input-mini'
});
}
$(document).on("click", ".editperso", function(g){
g.stopPropagation();
var $CellParent = $(this).closest('td').prev().children('b');
editperso2($CellParent);
});
function editperso2(bCellToEdit) {
bCellToEdit.editable({
mode: 'inline',
inputclass: 'input-medium texteperso',
type: 'text',
success: function() {
var cmsperso = $('.textepersocms').next('span').children('div').children('form').children('div').children('div').children('div').children('input.texteperso').val();
var chefdequart = $('.textepersocdq').next('span').children('div').children('form').children('div').children('div').children('div').children('input.texteperso').val();
var adjoint = $('.textepersoadj').next('span').children('div').children('form').children('div').children('div').children('div').children('input.texteperso').val();
if(cmsperso === undefined) { var cmsperso = $(this).closest('td').children('.textepersocms').html(); }
if(chefdequart === undefined) { var chefdequart = $(this).closest('td').children('.textepersocdq').html(); }
if(adjoint === undefined) { var adjoint = $(this).closest('td').children('.textepersoadj').html(); }
var cmsperso2 = $(this).closest('td').children('.textepersocms').html();
var chefdequart2 = $(this).closest('td').children('.textepersocdq').html();
var adjoint2 = $(this).closest('td').children('.textepersoadj').html();
var pattern = /^[\-.,_ a-zA-ZáàâäãéèêëíìîïóòôöõúùûüýÿÁÀÂÄÃÉÈÊËÍÌÎÏÓÒÔÖÕÚÙÛÜÝ]+$/;
var patterncms = pattern.test(cmsperso);
var patterncdq = pattern.test(chefdequart);
var patternadj = pattern.test(adjoint);
if (patterncms == true && patterncdq == true && patternadj == true) {
$.ajax({
type: "POST",
url: "form/update/updateperso.php",
data: { cmsperso: cmsperso, cmsperso2: cmsperso2, chefdequart: chefdequart, chefdequart2: chefdequart2, adjoint: adjoint, adjoint2: adjoint2 }
});
}
else {
$('input.texteperso').parents('div.control-group').each(function() {
$(this).addClass('error');
console.log($(this));
});
return false;
}
}
});
}
});
addClass无效,我使用jquery 1.9.1和Bootstrap 2.3.0。在此代码之前,我使用类“control-group”在div中创建动态输入。如果没有错误,一切正常,但是如果有问题,我想添加类“错误”但是console.log返回“jQuery(div.control-group)
”而没有错误类。
和“this”返回<div class="control-group">
当我尝试addClass
时,没有任何改变。
当我尝试attr('class', 'error')
时,我有错误。
当我尝试attr('class', 'control-group error')
时,我只有控制组
当我尝试attr('class', 'control-group'+ 'error')
时,我有control-grouperror(没有空格)
感谢帮助我
答案 0 :(得分:0)
使用jquery migrate而不是jquery 1.9 最新版本中存在正弦错误。相反,我会说最新版本不稳定
jquery.com/download /
答案 1 :(得分:0)
您应该尝试.parents
jQuery函数。
.parents
如何运作。
示例强>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(function()
{
console.log($("#getMe").parents('div#main'));
console.log($("#getMe").parents('div#second'));
});
</script>
<div id="main">
<div id="second">
<div id="first">
<div>1</div>
<div>2</div>
<div id="getMe">3</div>
</div>
</div>
</div>
.parents
使用jQuery选择器获取选中的特定dom
的所有父级dom
。
现在将选择器传递给.parents
,然后它将返回dom
。
在您的情况下,它必须为$("input.texteperso").parents('div.control-group')
同时将patterncms===true && patterncdq===true && patternadj===true
更改为patterncms == true && patterncdq == true && patternadj == true