我實現了一個小jQuery來在輸入元素中顯示默認消息。然後我把輸入元素放在一個jQueryUI對話框中。除非在輸入中輸入一些文本,然後關閉對話框,然後打開對話框,該對話框會錯誤地在輸入元素中顯示最近輸入的文本,否則它會正常工作。如何修改它,以便每次打開對話框時都會重新顯示原始文本?請參閱http://jsfiddle.net/Mxf7s/瞭解實際示例和下面的腳本。謝謝帶對話框的默認輸入文本
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery UI Dialog</title>
<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"></script>
<script>
$(function() {
$("#openDialog").click(function(){$("#myDialog").dialog('open');return false;});
$("#myDialog").dialog({
modal: true,
autoOpen : false,
open : function() {
$('#myInput').blur(); //Required if this input is the first one on the dialog since it will automatically be focused on
//$('#myInput').val('New Default value1').blur();
},
close : function() {
//$('#myInput').val('New Default value2');
},
buttons: {Ok: function() {$(this).dialog("close");}}
});
$('.default-value').each(function() {
var $t=$(this), default_value = this.value;
$t.css('color', '#929292');
$t.focus(function() {
if(this.value == default_value) {
this.value = '';
$t.css('color', 'black');
}
});
$t.blur(function() {
if($.trim(this.value) == '') {
$t.css('color', '#929292');
this.value = default_value;
}
});
});
});
</script>
</head>
<body>
<button id="openDialog">Click</button>
<div id="myDialog" title="My Dialog">
<input type="text" value="Original Default value" class="default-value" name="myInput" id="myInput" />
</div>
</body>
</html>
哈哈,那是比我想象得容易。謝謝!我很接近,但不是設置爲空,而是嘗試將其設置爲原始默認值。再次感謝 – user1032531 2013-03-03 18:12:05
我也喜歡你使用class +上下文選擇器 – user1032531 2013-03-03 18:23:10
不客氣。 '=]' – 2013-03-03 18:29:26