回答
可以使用val()
方法清除的定期輸入值。
$('#X').click(function(){
$(this).prev().val("").focus();
// $(this).remove()
})
結束語插件裏面:
(function($) {
$.fn.addClearButton = function(width) {
if (typeof width === 'undefined') width = '50%';
this.wrap('<div class="ui-input-search ui-shadow-inset ui-btn-corner-all ui-btn-shadow ui-icon-searchfield ui-body-c"></div>').bind('input keyup', function() {
$(this).next().css('display', ($(this).val() !== '') ? 'inline-block' : 'none');
}).parent().css({backgroundSize: '0 0', paddingLeft: 10, width: width}).append($('<a title="clear text" class="ui-input-clear ui-btn ui-btn-up-c ui-btn-icon-notext ui-btn-corner-all ui-shadow" href="#" data-theme="c"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">clear text</span><span class="ui-icon ui-icon-delete ui-icon-shadow"></span></span></a>').click(function() {
$(this).hide().prev().val('').focus();
}));
};
})(jQuery);
//the width parameter is optional.
$('#basic').addClearButton(200);
//integers are treated as px, can accept % and em between quotes too e.g. '77%'
請注意,它將模仿搜索按鈕的標記,即將輸入封裝在div
中以將X按鈕懸浮在輸入的右側。
如果您將jQuery從1.6.2升級到1.7+,請將.bind
替換爲.on
。
編輯刪除搜索圖標。
增加了可選的寬度參數。
謝謝,使它成爲一個插件是一個好主意。然而,左邊的放大鏡是我不想要的。這實際上是爲什麼我想使用文本字段而不是搜索。有沒有機會隱藏它? – noway
@noway我一開始沒有注意到它,現在就把它刪除了。'=]' –
我會+1,但你確實應該提供1.7.2解決方案 - 人們不應該使用1.6更多的jQuery 1.8已經出來了。 – callumacrae
你可以嘗試這樣的事情:
(function($, undefined) {
$.fn.clearable = function() {
var $this = this;
$this.wrap('<div class="clear-holder" />');
var helper = $('<span class="clear-helper">×</span>');
$this.parent().append(helper);
$this.parent().on('keyup', function() {
if ($this.val()) {
helper.show();
helper.css('display', 'inline-block');
} else helper.hide();
});
helper.click(function() {
$this.val("");
helper.hide();
});
$this.on('focus', function() {
helper.show();
});
};
})(jQuery);
$('#myInput').clearable();
.clear-holder{
position:relative;
float:left;
}
.clear-helper{
margin-top:4px;
text-align:center;
position:absolute;
right:4px;
height:16px;
width:16px;
font-size:13px;
cursor: pointer;
display:none;
background:#e0e0e0;
border-radius:16px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input id="myInput" type="text"/>
- 1. 如何在開始輸入後清空輸入字段
- 2. 清除輸入字段onfocus
- 3. 輸入字段被清空後如何刪除輸入字段
- 4. 如果輸入字段無效,則清除輸入字段
- 5. 正在清除表單輸入字段
- 6. 在處理完輸入後清除文本輸入字段
- 7. HTML輸入在輸入不清除字段
- 8. JavaScript:用鼠標輸入時清除搜索字段?
- 9. 查詢清除輸入字段點擊
- 10. asp點擊輸入字段清除值
- 11. 使用JavaScript清除輸入字段
- 12. 如何清除TextInputDialog的輸入字段?
- 13. 如何清除輸入字段onclick?
- 14. 清除模糊上的輸入字段
- 15. Ionic + Angular:無法清除輸入字段
- 16. 清除輸入。特定字段
- 17. 根據回調清除輸入字段
- 18. 使用Reactjs清除輸入字段?
- 19. 清除字段並輸入硒webdriver
- 20. JQuery清除輸入文本字段
- 21. 從輸入字段打開Elfinder 2.X
- 22. 在鼠標上輸入輸入字段展開
- 23. 開始輸入字段和文本
- 24. 設置輸入字段專注於開始輸入
- 25. 當數據輸入到另一個輸入時清除輸入
- 26. 啓用輸入字段以輸入值
- 27. 輸入=範圍,以便移除文本字段
- 28. 如何在輸入字段被清除時觸發JavaScript事件?
- 29. 在文檔準備就緒時清除的輸入字段
- 30. 重力形式 - 在選擇時自動清除輸入字段?
優秀。小提琴2很好。 – noway
是的,這是更簡單的解決方案。沒有想到數據屬性。如果你不想讓那些30px的空白在左邊,你可以減少父'div'的'paddingLeft'。 –
@FabrícioMatté - 好主意,看起來像[這個FIDDLE](http://jsfiddle.net/nvWnx/16/)... – adeneo