J'utilise un plugin d'espace réservé jQuery (https://github.com/danielstocks/jQuery-Placeholder). Je dois changer le texte de l'espace réservé avec le changement dans le menu déroulant. Mais cela ne change pas. Voici le code:
$(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();
}
});
});
Mon 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>
Quelqu'un peut-il comprendre cela?
$(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");
}
});
});
Copiez et collez ce code dans votre fichier js, cela modifiera tout le texte d’espace réservé de l’ensemble du site.
Vous pouvez utiliser le code suivant pour mettre à jour un espace réservé par identifiant:
$("#serMemtb").attr("placeholder", "Type a Location").val("").focus().blur();
Le plugin n'a pas l'air très robuste. Si vous appelez à nouveau .placeholder()
, il crée une nouvelle instance Placeholder
alors que les événements sont toujours liés à l'ancienne.
En regardant le code, il semble que vous pourriez faire:
$("#serMemtb").attr("placeholder", "Type a name (Lastname, Firstname)").blur();
EDIT
placeholder
est un attribut HTML5 , devinez qui ne le supporte pas?
Votre plugin ne semble pas vraiment vous aider à surmonter le fait que IE ne le supporte pas. Par conséquent, bien que ma solution fonctionne, votre plugin ne le fait pas. Pourquoi n'en trouvez-vous pas un?.
vous pouvez simplement utiliser
$("#yourtextboxid").attr("placeholder", "variable");
où, si variable est une chaîne, vous pouvez utiliser comme ci-dessus, si c'est variable, remplacez-le par le nom tel que "variable" sans les guillemets doubles.
par exemple: $("#youtextboxid").attr("placeholder", variable);
cela fonctionnera.
$(this).val()
est une chaîne. Utilisez parseInt($(this).val(), 10)
ou vérifiez '1'. Le dix est à noter base 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 a attiré mon attention sur le fait que le plug-in que vous utilisez ne surmonte pas l'échec d'IEs HTML.
Essayez quelque chose comme ceci: http://archive.plugins.jquery.com/project/input-placeholder
exemple de travail d'un espace réservé dynamique utilisant Javascript et 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");
}
}
Déplacer votre première ligne vers le bas le fait pour moi: 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();
});
changer le texte de substitution en utilisant jquery
essayez ceci
$('#selector').attr("placeholder", "Type placeholder");
Si l'entrée est à l'intérieur de la div, vous pouvez essayer ceci:
$('#div_id input').attr("placeholder", "placeholder text");