使用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>
任何人都可以弄清楚吗?
$(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();
该插件看起来不健壮。 如果再次调用.placeholder()
,它将创build一个新的Placeholder
实例,而事件仍然绑定到旧的实例。
看看代码,看起来你可以这样做:
$("#serMemtb").attr("placeholder", "Type a name (Lastname, Firstname)").blur();
编辑
placeholder
是一个HTML5属性 , 猜猜谁不支持它?
你的插件似乎并没有帮助你克服IE不支持它的事实,所以当我的解决scheme工作时,你的插件不能。 你为什么不find一个这样做?
$(this).val()
是一个string。 使用parseInt($(this).val(), 10)
或检查'1'。 十是表示基数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
只要你可以使用
$("#yourtextboxid").attr("placeholder", "variable");
其中,如果variables是string,那么你可以像上面那样使用,如果它是可变的,用“双引号”之类的名称replace它。
例如: $("#youtextboxid").attr("placeholder", variable);
它会工作。
把你的第一行移到底部对我来说是这样的: 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(); });
使用Javascript和Jquery的dynamic占位符的工作示例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"); } }