1

type="button" で入力の値を変更する必要があります。別の関数は、「value」属性を「defaultValue」属性と比較して、値が変更されたかどうかを確認します (ただし、それは重要ではありません...)。これは、type="button" を使用した入力を除いて、他のすべてに対して正常に機能します。何らかの理由で、ブラウザもデフォルト値を変更します。しかし、なぜ?

注: jQuery はありません。

簡単なテスト コードを次に示します。

<!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" xml:lang="de" lang="de">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <script type="text/javascript">
            function d(input)
            {
                alert("value: "+ input.value +"\ndefaultValue: "+ input.defaultValue);
            }
        </script>
    </head>
<body>
    <input type="button" value="0" onclick="d(this); this.value=1; d(this);" />
</body>
</html>
4

2 に答える 2

0

d の定義をグローバル スコープに直接配置します: http://jsfiddle.net/UQTY2/34/

   window.d = function (input) {
       alert("value: " + input.value + "\ndefaultValue: " + input.defaultValue);
   }
于 2013-03-24T18:00:38.687 に答える
0

いい質問です!type="reset"でも機能しません。
これは、指定されたデータ型がなく、単なるボタンであるためです。
ボタンの最初の値を保存してから使用できます。私はあなたのために例を書きました:

<!DOCTYPE HTML>
<html>
    <head></head>
    <body>
        <input id="test" type="button" value="Old text" onclick="d(this); this.value='Hello, new text';"/>
        <script type="text/javascript">
            var defaultValueOfInput = document.getElementById("test").value;
            function d(button){
                alert("Value: "+button.value+"\ndefaultValue: "+defaultValueOfInput);
            }
        </script>
    </body>
</html>

編集:私のコードを更新しました。

于 2013-03-24T18:01:48.180 に答える