3

jQueryを使用して入力の値を変更しようとしています。動作しているように見えますが、Firebug を使用して #input の値を見ると、元の値のままです。これは正常ですか、それとも何か間違っていますか? ありがとうございました

http://jsfiddle.net/tsfSg/

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 
<title>Testing</title> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script> 

$(function(){
    $("#DoIt").click(function()
    {
        $('#input').val('final');
        console.log($('#input'));
        alert($('#input').val());
    });
});

</script>
</head>

<body>
<a href="#" id="DoIt">DoIt</a>
<input id="input" type="text" value="original" />
</body> 
</html>
4

1 に答える 1

5

使用.val()console.log( $('#input').val() );

$(function(){
    $("#DoIt").click(function(){
        $('#input').val('final');
        console.log($('#input').val());  // the fixed line!
        alert($('#input').val());
    });
});

デモ


編集

これで、Firebugの要素ソース(要素の検査)の内部で、あなたが探しているものを理解できました。
さて、変更が実際に発生することを確認したい場合は、以下を使用する必要があります。

$('#input').attr('value','final');

それ以外の:

$('#input').val('final');

それ以外の場合、変更はブラウザによって保存されますが(恐れることはありません)、Firebugによって更新されません。

in this demo you can see it working:

デモ

$("#DoIt").click(function(e){
    $('#input').attr('value','final');     // use .attr() to see the change happen in Firebug!
    // $('#input').val('final');           //  but rather use this
    // $('#input').prop('value','final');  // or better THIS one!
    console.log( $('#input').val() );
    alert( $('#input').val() );
    return false;
});
于 2012-05-22T12:25:34.470 に答える