jquery提示没有使用textarea

时间:2012-03-04 01:59:01

标签: jquery html forms

我的jquery提示仅在文本框中有效,而不是textarea。如何使它适用于两者。

$(document).ready(function() {
//Shows the title in the text box, and removes it when modifying it
$('input[title]').each(function(i) {
if(!$(this).val()) {
    $(this).val($(this).attr('title')).addClass('hint');
}

仅适用于:

<input type="text" name="name" title="Full Name" >

但不是:

<textarea title="Enter Message Here"name="message" rows=8 cols=30 </textarea>

2 个答案:

答案 0 :(得分:3)

您当前的选择器$('input[title]')表示选择具有title属性集的输入。它没有说textareas。

你需要这样做:

$('input[title],textarea[title]')

或者,可以说更好:

$(':input[title]')   // note the colon

第一个说选择具有title属性的所有输入元素和具有title属性的所有textarea元素。第二个使用jQuery的:input selector,它自动抓取所有输入,textarea,select和button元素(即所有表单元素),但在这种情况下仅限于具有title属性的那些。

工作演示:http://jsfiddle.net/qMLRK/

注意:您应该在字段中允许空格,因为<textarea> </textarea> 为空:

if ($.trim($(this).val()) === "")

// NOT

if(!$(this).val())

答案 1 :(得分:0)

JQuery将所有内容都作为选择。

textarea不是输入类型,所以只需添加JQuery选择。

$('input[title],textarea[title]').each(function(i) {

这应解决该问题。您也可以给同一个类:),然后只需按类选择,这会将您的选择减少到(假设您使用名称文本框作为类)

$( '文本框')。每个