Các câu trả lời được liệt kê là một phần theo tôi. Tôi đã liên kết dưới đây hai ví dụ về cách thực hiện điều này trong Angular và với JQuery.
Giải pháp này có các tính năng sau:
- Hoạt động cho tất cả các trình duyệt hỗ trợ JQuery, Safari, Chrome, IE, Firefox, v.v.
- Hoạt động cho Phonegap / Cordova: Android và IOs.
- Chỉ chọn tất cả một lần sau khi đầu vào được lấy nét cho đến lần mờ tiếp theo và sau đó lấy nét
- Nhiều đầu vào có thể được sử dụng và nó không bị trục trặc.
- Angular directive có khả năng sử dụng lại tuyệt vời chỉ đơn giản là thêm lệnh select-all-on-click
- JQuery có thể được sửa đổi dễ dàng
JQuery:
http://plnkr.co/edit/VZ0o2FJQHTmOMfSPRqpH?p=preview
$("input").blur(function() {
if ($(this).attr("data-selected-all")) {
//Remove atribute to allow select all again on focus
$(this).removeAttr("data-selected-all");
}
});
$("input").click(function() {
if (!$(this).attr("data-selected-all")) {
try {
$(this).selectionStart = 0;
$(this).selectionEnd = $(this).value.length + 1;
//add atribute allowing normal selecting post focus
$(this).attr("data-selected-all", true);
} catch (err) {
$(this).select();
//add atribute allowing normal selecting post focus
$(this).attr("data-selected-all", true);
}
}
});
Góc cạnh:
http://plnkr.co/edit/llcyAf?p=preview
var app = angular.module('app', []);
//add select-all-on-click to any input to use directive
app.directive('selectAllOnClick', [function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
var hasSelectedAll = false;
element.on('click', function($event) {
if (!hasSelectedAll) {
try {
//IOs, Safari, thows exception on Chrome etc
this.selectionStart = 0;
this.selectionEnd = this.value.length + 1;
hasSelectedAll = true;
} catch (err) {
//Non IOs option if not supported, e.g. Chrome
this.select();
hasSelectedAll = true;
}
}
});
//On blur reset hasSelectedAll to allow full select
element.on('blur', function($event) {
hasSelectedAll = false;
});
}
};
}]);
<label>
cho nhãn chứ không phảivalue
. Bạn có thể sử dụng JS và CSS để làm cho nó trông giống nhau, trong khi không quá ngữ nghĩa. dorward.me.uk/tmp/label-work/example.html có một ví dụ sử dụng jQuery.