Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript[温度转换器选择选项]_Javascript_Html_Html Select - Fatal编程技术网

JavaScript[温度转换器选择选项]

JavaScript[温度转换器选择选项],javascript,html,html-select,Javascript,Html,Html Select,我正在创建一个温度转换器,我遇到了问题,因为我无法在选择某个选项后自动更改输出 我想要的一个例子是,用户在文本字段中输入一个数字,然后他们将能够选择当前单位,例如摄氏度。然后,他们将选择想要输出的单位。但是,我希望如果输入值是摄氏度,那么输出摄氏度值应该从输出选项选择菜单中删除 希望这有意义:/ 下面是HTML代码 <body> <h3>Convert Temperature</h3> <table> <tbody>

我正在创建一个温度转换器,我遇到了问题,因为我无法在选择某个选项后自动更改输出

我想要的一个例子是,用户在文本字段中输入一个数字,然后他们将能够选择当前单位,例如摄氏度。然后,他们将选择想要输出的单位。但是,我希望如果输入值是摄氏度,那么输出摄氏度值应该从输出选项选择菜单中删除

希望这有意义:/

下面是HTML代码

<body>
  <h3>Convert Temperature</h3>
<table>
        <tbody>
        <tr>
            <td>Enter a value</td>
            <td>
                <input type="text">
                <select id ="to">
                    <option value="far">Farhenheight (F°)</option>
                    <option value="cel">Celsius (C°)</option>
                    <option value="kel">Kelvin (K°)</option>
                </select>
            </td>
        </tr>
        <tr>
            <td>To</td>
            <td>
                <input type="text" readonly>
                <select id="from">
                    <option value="far">Celsius (C°)</option>
                    <option value="cel">Farhenheight (F°)</option>
                    <option value="kel">Kelvin (K°)</option>
                </select>
            </td>
        </tr>
        <tr>

    </tbody>
</table>
下面是JSFiddle链接,让事情更清楚一些


提前感谢:

我已经用你的示例演示创建了小提琴,将摄氏温度转换为华氏温度。对于其他人,请遵循相同的步骤

下面是js代码:

    $('#txtTemperature').on('change', function () {
        var tempValue = $.trim($(this).val());
        var inputUnit = $.trim($('select#to option:selected').val());
        var outputVal = '';
        if (inputUnit === 'cel') {
            outputVal = cel_faren(parseFloat(tempValue));
        }
        $('#txtResult').val(outputVal);
    });
    $('select#to').on('change', function () {
        var options = $("select#to>option").map(function () {
            return $(this).val();
        }).get();
        var unit = $.trim($('option:selected', this).val());
        var outputUnit = $.trim($('select#from option:selected').val());
        if (unit === outputUnit) {
            if ($.inArray(outputUnit, options) > -1) {
                options.splice($.inArray(outputUnit, options), 1);
            }
            $('select#from').val(options[0]);
        }
    });
    function cel_faren(tempInCel) {
        return (tempInCel * (9 / 5) + 32);
    }

我看不到您希望隐藏此输出选项的代码部分?到目前为止您尝试了什么?嗨,我现在已经添加了它,但是它不是javascript。它是根据预期输出编写的。谢谢。好的,让我看看他们使用的是display:none,但是如果你选择了另一个与输入不同的选项,它会重新出现吗?谢谢,我会尝试一下: