JQuery только получает значение по умолчанию ввода - PullRequest
0 голосов
/ 28 июля 2011

У меня есть два события щелчка и две кнопки. Одна кнопка скрыта, а один вход скрыт.

Когда я нажимаю кнопку, которая не скрыта, появляется скрытая кнопка и скрытый ввод. Когда я нажимаю вторую кнопку, ту, которая была скрыта, я получаю значение по умолчанию для ввода. Это проблема, она получает значение по умолчанию, и по умолчанию я имею в виду все, что набрал value='dasad' в коде. Он не получает значение, введенное пользователем.

Некоторые примеры кода, не смотрите синтаксис просто как пример


    $(button1).click(funciton(){
     $(button2).show();
    $(input2).show();
    })
    $(button2).click(function(){
    $(input2).val();
    })

Я пытался использовать delegate, но он такой же, как результат click.

Ответы [ 3 ]

1 голос
/ 28 июля 2011

Я попробовал следующее и смог заставить его работать

$(document).ready(function() {
$('#button1').click(function(){
    $('#button2').show();
    $('#input2').show();
});
$('#button2').click(function(){
    alert($('#input2').val());
})
});

Кнопки настроены как

<button id="button1">hello</button>
<button id="button2" style="display:none">hello 2</button>
<input id="input2" style="display:none" type="text" />
0 голосов
/ 28 июля 2011

В этой ситуации на самом деле нет причин, по которым вы ДОЛЖНЫ использовать делегат, но из того, что я прочитал, это никогда не плохая идея.

Вот пример JSfiddle , делающий то, что я думаюхочешь, по твоему вопросу это немного сложно отличить.

$(document).ready(function() {
    $(".wrapper").delegate(".button1", "click", function() {
        $(".innerDiv").show();
        $(".input1").focus();
    });

    $(".wrapper").delegate(".button2", "click", function() {
        $(".showVal").html($(".input1").val());
    });

});
0 голосов
/ 28 июля 2011
$('#button1').click(function(){
    $('#button2').show();
    $('#input2').show();
    return false;
});

$('#button2').click(function(){
    var value = $('#input2').val();
    alert(value);
    return false;
});
...