我要做的就是如果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>

最佳答案

isNumeric()

您正在检查:isNaN(ftemp)其中,ftemp是DOM元素,因此不能为数字。更改为isNaN(parseInt(ftemp.value, 10))

10-02 19:09