Изменение текста заполнителя с помощью 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>


может ли кто-нибудь понять это?

835   7  

7 ответов:

$(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-файл, это изменит весь текст заполнителя со всего сайта.

вы можете использовать следующий код для обновления заполнитель кодом:

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

плагин не выглядит очень надежной. Если вы позвоните .placeholder() опять же, он создает новый Placeholder экземпляр, в то время как события все еще привязаны к старому.

глядя на код, похоже, вы могли бы сделать:

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

EDIT

placeholder - это атрибут HTML5,угадайте, кто не поддерживает его?

ваш плагин не похоже, чтобы помочь вам преодолеть тот факт, что IE не поддержать его, так что пока мое решение работает, ваш плагин не. Почему бы тебе не найти один, что делает.

просто вы можете использовать

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

где, если переменная является строкой, то вы можете использовать, как указано выше, если это переменная, замените ее именем типа "переменная" с двойными кавычками.

например: $("#youtextboxid").attr("placeholder", variable); это сработает.

$(this).val() - это строка. Используйте 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 довел до моего сведения, что плагин, который вы используете, не преодолевает IES HTML failure.

попробуйте что-то вроде этого: http://archive.plugins.jquery.com/project/input-placeholder

рабочий пример динамического заполнителя с использованием Javascript и Jqueryhttp://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");
}
}

перемещение первой строки вниз делает это за меня: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();
});

Comments

    Ничего не найдено.