焦點

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(); 
});