使用jQuery更改占位符文本

我正在使用一个jQuery占位符插件(https://github.com/danielstocks/jQuery-Placeholder)。我需要在下拉菜单中更改占位符文本。但这并没有改变。代码如下:

$(function () {
$('input[placeholder], textarea[placeholder]').placeholder();
$('#serMemdd').change(function () {
var k = $(this).val();
if (k == 1) {
$("#serMemtb").attr("placeholder", "Type a name (Lastname, Firstname)").placeholder();
}
else if (k == 2) {
$("#serMemtb").attr("placeholder", "Type an ID").placeholder();
}
else if (k == 3) {
$("#serMemtb").attr("placeholder", "Type a Location").placeholder();
}
});
});

我的Html:

<div class="filterbox">
<select name="ddselect" id="serMemdd">
<option value="1" selected="selected">Search by Name</option>
<option value="2">Search by ID</option>
<option value="3">Search by Location</option>
</select>
<input id="serMemtb" type="text" style="width: 490px" placeholder="Type a name    (Lastname, Firstname)" />
<input id="seMemBut" type="button" value="Search" />
</div>

有人能算出来吗?

570741 次浏览

$(this).val()是一个字符串。使用parseInt($(this).val(), 10)或检查'1'。10表示以10为底。

$(function () {
$('input[placeholder], textarea[placeholder]').blur();
$('#serMemdd').change(function () {
var k = $(this).val();
if (k == '1') {
$("#serMemtb").attr("placeholder", "Type a name (Lastname, Firstname)").blur();
}
else if (k == '2') {
$("#serMemtb").attr("placeholder", "Type an ID").blur();
}
else if (k == '3') {
$("#serMemtb").attr("placeholder", "Type a Location").blur();
}
});
});

$(function () {
$('input[placeholder], textarea[placeholder]').placeholder();
$('#serMemdd').change(function () {
var k = parseInt($(this).val(), 10);
if (k == 1) {
$("#serMemtb").attr("placeholder", "Type a name (Lastname, Firstname)").blur();
}
else if (k == 2) {
$("#serMemtb").attr("placeholder", "Type an ID").blur();
}
else if (k == 3) {
$("#serMemtb").attr("placeholder", "Type a Location").blur();
}
});
});

其他插件

ori已经让我注意到你正在使用的插件不能克服ie HTML失败。

试着这样做: http://archive.plugins.jquery.com/project/input-placeholder < / p >

这个插件看起来不是很健壮。如果你再次调用.placeholder(),它会创建一个新的Placeholder实例,而事件仍然绑定到旧的实例。

看一下代码,你可以这样做:

$("#serMemtb").attr("placeholder", "Type a name (Lastname, Firstname)").blur();

编辑

placeholder是一个HTML5属性猜猜谁不支持它?

你的插件似乎并没有真正帮助你克服IE不支持它的事实,所以当我的解决方案起作用时,你的插件没有。你为什么不找个懂的。

移动你的第一行到底部为我做:http://jsfiddle.net/tcloninger/SEmNX/

$(function () {
$('#serMemdd').change(function () {
var k = $(this).val();
if (k == 1) {
$("#serMemtb").attr("placeholder", "Type a name (Lastname, Firstname)").placeholder();
}
else if (k == 2) {
$("#serMemtb").attr("placeholder", "Type an ID").placeholder();
}
else if (k == 3) {
$("#serMemtb").attr("placeholder", "Type a Location").placeholder();
}
});
$('input[placeholder], textarea[placeholder]').placeholder();
});
$(document).ready(function(){
$('form').find("input[type=textarea], input[type=password], textarea").each(function(ev)
{
if(!$(this).val()) {
$(this).attr("placeholder", "Type your answer here");
}
});
});

复制并粘贴这段代码在你的js文件,这将改变所有占位符文本从整个网站。

你可以使用下面的代码来更新一个占位符的id:

$("#serMemtb").attr("placeholder", "Type a Location").val("").focus().blur();

动态占位符的工作实例使用Javascript和Jquery http://jsfiddle.net/ogk2L14n/1/

<input type="text" id="textbox">
<select id="selection" onchange="changeplh()">
<option>one</option>
<option>two</option>
<option>three</option>
</select>


function changeplh(){
debugger;
var sel = document.getElementById("selection");
var textbx = document.getElementById("textbox");
var indexe = sel.selectedIndex;


if(indexe == 0) {
$("#textbox").attr("placeholder", "age");


}
if(indexe == 1) {
$("#textbox").attr("placeholder", "name");
}
}

你可以简单地使用

$("#yourtextboxid").attr("placeholder", "variable");

其中,如果变量是字符串,那么你可以像上面那样使用,如果它是变量,用“变量”这样的名字替换它,不带双引号。

< p >如:$("#youtextboxid").attr("placeholder", variable);

使用jquery更改占位符文本

试试这个

$('#selector').attr("placeholder", "Type placeholder");

如果输入是在div内部,那么你可以尝试这样做:

$('#div_id input').attr("placeholder", "placeholder text");

试试这个

$('#Selector_ID').attr("placeholder", "your Placeholder");

这招对我很管用:

jQuery('form').attr("placeholder","Wert eingeben");

但现在这个不管用了:

// Prioritize "important" elements on medium.
skel.on('+medium -medium', function() {
jQuery.prioritize(
'.important\\28 medium\\29',
skel.breakpoint('medium').active
);
});
$(document).ready(function(){
$("input[type=search]").attr("placeholder","this is a test");
});
$(document).ready(function(){
$('form').find("input[type=search]").each(function(ev)
{
$(this).attr("placeholder", "Search Whatever you want");
});
});