焦点

2016-05-17 71 views
0

删除跨度元素我有每一个这样的跨度元素几个文本框:焦点

<span class="reqDiv" name="Required">This value is required</span> 
<input class="form-control" id="txtAddress" placeholder="Address" type="text" maxlength="50" autocomplete="off"> 

<span class="reqDiv" name="Required">This value is required</span> 
<input class="form-control" id="txtZip" placeholder="Zip Code" type="text" maxlength="5"> 

我想删除它是焦点文本框的span元素。我尝试了以下jquery代码,用于删除所有文本框的span元素而不是特定的“on-focus”文本框。我怎样才能实现它?

jQuery的:

$("#Offer_Form").find(".form-control").on("focus", function (e) { 
     $("span[name='Required']") 
    }); 

编辑:这是怎么了,我通过jQuery的产生span标签:

var SetErrorStateForControl = function (elemObj, msg) { 
     elemObj.closest('div').find($("span[name='Required']")).remove(); 
     $('<span class="reqDiv" name="Required">' + msg + '</span>').prependTo(elemObj.closest('div')); 
    } 
+0

不要删除'span',隐藏(切换)它。当你不填写输入字段时,你会失去你的标签! –

回答

0

可以使用prev()方法获取每个标签的相应跨度

$("#Offer_Form").find(".form-control").on("focus", function(e) { 
    $(this).prev().remove(); 
}); 
+0

此跨度出现在我的文本框中。我尝试了你的代码,但它坚持在那里,并且无论我输入到文本框中都被覆盖。 –

0

.prev([selector])方法得到的直接前置兄弟

如果要删除以前span元素,你可以试试这个:

$(document).ready(function(){ 
    $(".form-control").focus(function(e) { 
     $(this).prev('span').remove(); //.prev('span') get the previous span 
    }); 
}); 
+0

这个'prev'事情不起作用。它不会删除它 –

0

您应该使用prev()功能寻找以前的跨度和去除跨度hide()功能。例子是Here

$(document).ready(function(){ 
    $('input.form-control').focus(function(e) { 
     $(this).prev('span').hide(); // use hide() for hiding 
    }); 
}); 

如果你想删除的跨度,而不是隐藏然后只使用remove()函数的。

$(this).prev('span').remove(); // use remove() for removing 
+0

它不会删除范围 –

+0

@HumaAli是它的唯一隐藏'span',如果你想删除然后使用remove()函数。我正在更新回答 –

+0

它仍然没有删除跨度。这行'$(this).prev('span')。remove();'不能正常工作 –

1

你可以尝试这样的事情

$("input.form-control:text").focus(function() { 
    $(this).prev().remove(); 
});