【发布时间】:2017-07-07 22:51:37
【问题描述】:
我在让我的 change() 事件在 jQuery 中工作时遇到了一些问题。我正在制作一个将温度转换为开尔文的小程序,并且我希望在转换后保持我的值的跨度更新 1)每次转换的温度发生变化和 2)每次从单选按钮中选择不同的温标。
相关代码:
$(document).ready(function() {
$('input[type=radio]').checkboxradio();
var temp = parseFloat()
$('input.listener').change(function() {
var name = $(this).attr("name");
var val = $(this).val();
switch (name) {
case 'unit':
var temperature = $('input#temp').val();
switch (val) {
case 'f':
$('span#output').html(((temperature - 32) / 1.8) + 273.15);
break;
case 'c':
$('span#output').html(temperature + 273.15);
break;
case 'r':
$('span#output').html(temperature / 1.8);
break;
}
case 'temp':
var u = $('input[name=unit]:checked').val();
switch (u) {
case 'f':
$('span#output').html(((val - 32) / 1.8) + 273.15);
break;
case 'c':
$('span#output').html(val + 273.15);
break;
case 'r':
$('span#output').html(val / 1.8);
break;
}
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="widget">
<fieldset>
<legend>Select a Unit to Convert to Kelvin: </legend>
<label for="fRadio">Fahrenheit</label>
<input id="fRadio" class="listener" type="radio" name="unit" value="f">
<label for="cRadio">Celsius</label>
<input id="cRadio" class="listener" type="radio" name="unit" value="c">
<label for="rRadio">Rankine</label>
<input id="rRadio" class="listener" type="radio" name="unit" value="r">
</fieldset>
</div>
<h2>Temperature Converter</h2>
<p>Type a value in the Fahrenheit field to convert the value to Kelvin:</p>
<p>
<label>Temperature</label>
<input id="temp" class="listener" type="number" value="32">
</p>
<p>Kelvin: <span id="output"></span></p>
我的猜测是我犯了一个非常愚蠢的小错误,但我似乎无法弄清楚。感谢您提供任何和所有帮助、建议和解决方案。
【问题讨论】:
-
.checkboxradio()是插件吗?当我尝试运行您的代码时,它会导致错误。 -
var name = $(this).attr("name");输入没有name属性。那应该怎么做? -
那是我的错误。我从输入字段中删除了 name="temp"。谢谢!
-
那么
switch (val)呢?val包含输入字段的值,而不是f、c或r。
标签: javascript jquery html switch-statement onchange