2012-06-10 51 views
2

我有兩個輸入。我希望他們在包含默認值時使用灰色文本。然而,當輸入處於對話框中時,第一個輸入起作用,CSS最初不會被應用。我想我可以通過jQuery在對話框打開時應用CSS,但是,似乎我不應該這樣做。有什麼建議麼?在輸入對話框中應用css

http://jsfiddle.net/pwdB5/

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 
<title>Testing</title> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
<link type="text/css" href="http://jqueryui.com/latest/themes/base/ui.all.css" rel="stylesheet" /> 
<script src="http://jquery-ui.googlecode.com/svn/tags/latest/ui/jquery-ui.js"></script> 
<style type="text/css"> 
input.filter { 
    color: #929292; 
    font-size: 0.7em; 
    width: 120px; 
} 
</style> 
<script> 
$(function(){ 

    $('.default-value').each(function() { 
     var $t=$(this), default_value = $t.value; 
     $t.focus(function() { 
      $t.css('color','black'); 
      if(this.value == default_value) { 
       $t.val(''); 
      } 
     }); 
     $t.blur(function() { 
      $t.css('color','#929292'); 
      if($.trim(this.value) == '') { 
       $t.val(default_value); 
      } 
     }); 
    }); 

    $("#open").click(function() {$("#dialog").dialog("open");}); 
    $("#dialog").dialog({ 
     autoOpen : false, 
     modal  : true, 
     open : function() {$('#dialog').find('input.filter').val('look up trade');} 
    }); 

}); 
</script> 
</head> 

<body> 
<button id="open">Click</button> 
<input type="text" value="default value2" class="default-value filter" name="value2" /> 

<div id="dialog" title="dialog"> 
<input type="text" value="default value1" class="default-value filter" name="value1" /> 
</div> 

</body> 
</html> 
+0

如果追加的CSS時直接添加對話框? $('#dialog')。find('input.filter')。val('look up trade').css('color','yellow');,是你想要的嗎? –

+0

是的,但除非必要,否則不想複製代碼。我不能發音的人給出了滿意的答案。感謝您的評論。 – user1032531

回答

2

它的樣子,在style不適用 - 因爲該領域是越來越集中。

試試這個:

$("#dialog").dialog({ 
    autoOpen : false, 
    modal  : true, 
    open : function() {$('#dialog').find('input.filter').val('look up trade').blur();} 
});