我试图创建一个简单的px到em转换器,当其中一个输入字段发生变化时,它会自动计算值。我已经获得了计算值的代码,但是当值发生变化时它不会更新。
继承HTML
<body>
<h1>PX to EM converter</h1>
<div id="base">
<h2>Enter a base pixel size</h2>
<input id="baseSize" value="16">
<p>px</p>
</div>
<div id="px">
<input id="pxInput" value="16">
<p>px</p>
<div id="emOutput2"></div>
</div>
<p>em</p>
<div id="Em">
<input id="emInput" value="1">
<p>em</p>
<div id="pxOutput2">
</div>
<p>px</p>
</div>
</body>
和js
$(document).ready(function() {
var baseSize2 = $('#baseSize').val();
var pxInput = $('#pxInput').val();
var emInput = $('#emInput').val();
var emOutput = function() {
return pxInput / baseSize2;
};
var pxOutput = function() {
return emInput * baseSize2;
};
$('#baseSize').attr('value', baseSize2);
$('#pxInput').attr('value', pxInput);
$('#emInput').attr('value', emInput);
$('#pxOutput2').html(pxOutput);
$('#emOutput2').html(emOutput);
});
非常感谢任何帮助
答案 0 :(得分:3)
目前,你没有什么可以听取输入框的变化。 jQuery的更改侦听器非常简单。
$('#baseSize').change(function() {
// Code in here will run when the baseSize input is changed
// Note that this must be inside your jQuery ready/onload function.
// Note that this will **not** work with dynamically added elements
});
此外,更新输入时使用jQuery的值函数而不是访问属性。
$('#baseSize').attr('value', baseSize2);
// Should be
$('#baseSize').val(baseSize2);
答案 1 :(得分:1)
我为你创建了一个JSFiddle here。
我已经在keyup事件中设置了它:
$("#pxInput").keyup(function(){
var emOutput = function (){ return $('#pxInput').val()/$('#baseSize').val();};
$('#emOutput2').html(emOutput);
});
$("#emInput").keyup(function(){
var pxOutput = function (){ return $('#emInput').val()/$('#baseSize').val();};
$('#pxOutput2').html(pxOutput);
});