Объединение $ ("# myId"). Val () с $ (this) .val () - PullRequest
2 голосов
/ 22 января 2011

Я хотел бы объединить

$("#myId").val()

и

$(this).val()

, чтобы я мог использовать один и тот же идентификатор и значение имени, связанные с массивом - characters[x].name -хранить и отображать разные имена.

http://jsfiddle.net/ren1999/Fae95/

Ответы [ 3 ]

1 голос
/ 22 января 2011

Попробуйте это:

$.each([["#getName1", "#displayName1"], ["#getName2", "#displayName2"]], 
function (i, names) {
    $(names[0]).blur(function () {
        var name=$(this).val();
        $(names[1]).text(name);
    });
})

Вы можете просто добавить больше входных данных, добавив их также в массив.

1 голос
/ 22 января 2011

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

$("#getName1, #getName2").blur(function() {
    var name = $(this).val();
    $(this).siblings('b').text(name);
}).blur();

http://jsfiddle.net/Fae95/1/

0 голосов
/ 05 февраля 2011

Вот решение моей проблемы.Я могу отобразить поле, ввести новое значение, снова щелкнуть поле и скрыть поле с новым значением.Консоль ошибок Firefox каждый раз жалуется, что this.refresh () не является функцией, но мне все равно, как она работает.

var gotIt='no'

    function askName(x)
     {if(gotIt=='yes')
       {response=this.name
        characters[x].setName(response)
        gotIt=0
       }
      else
       {gotIt='no'
        this.name=characters[x].name
        response="<input onClick=_setName(this.value) size=10 type=text value="+this.name+">"
        characters[x].setName(response)
       }
     }
    function _setName(x)
     {this.name=x
      this.refresh()
      gotIt='yes'
     }
...