0

にコンテンツがない場合は、ボタンを無効にするだけですftemp。ある場合は、ボタンを有効にして数値かどうかを確認します。次にftemp、次のページに送信できます。私のhtml:

<!DOCTYPE html> 
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript">

            function content()
            {
                var ftemp = document.getElementById("ftemp");
                if (ftemp.value=="")
                {
                    var convert = document.getElementById("convert").disabled=true;
                    document.getElementById("error").innerHTML = "";
                }
                else
                {
                    isNumeric()
                }
            }
            function isNumeric()
            {
                var ftemp = document.getElementById("ftemp");
                if (isNaN(ftemp))
                {
                    var convert = document.getElementById("convert").disabled=true;
                    document.getElementById("error").innerHTML = "Enter only numbers";
                }
                else 
                {
                    var convert = document.getElementById("convert").disabled=false;
                    document.getElementById("error").innerHTML = "";
                }
            } 

        </script>
    </head>
    <body onload="content()">
        <form method="get" action="celsius">
            <p>
                <label>
                    Enter a temperature in Fahrenheit:
                </label>
            </p>
            <p>
                <input required id="ftemp" title="Enter only numbers!" size="3"
                    maxlength="3" onkeyup="content()"/>
                <button id="convert" name="convert">Convert to Celsius</button>
            </p>
            <p id="error" name="error">

            </p>
        </form>
    </body>
</html>
4

2 に答える 2

3

内部isNumeric():

チェックしています: isNaN(ftemp)whereftempは DOM 要素であるため、数値にすることはできません。に変更しisNaN(parseInt(ftemp.value, 10))ます。

于 2013-03-03T20:54:45.087 に答える
1

ここにエラーがあります:

if (isNaN(ftemp))

次のように変更します。

if (isNaN(ftemp.value))

ftempDOM オブジェクトです。ここで値を渡す必要があります。

フィドル: http://jsbin.com/ocibuc/2

于 2013-03-03T20:56:36.857 に答える