我有这段代码:http://jsfiddle.net/jevniky/v3x5B/
<form id="form">
<input type="text" value="500" id="amount">
<input type="radio" name="time" value="7">7
<input type="radio" name="time" value="14" checked>14
<input type="radio" name="time" value="21">21
<input type="radio" name="time" value="28">28
</form>
amount:<br>
<p id="amountDisp"></p>
time:<br>
<p id="timeDisp">14</p>
result:<br>
<p id="result"></p>
和脚本:
$(document).ready(function () {
$("input[name=time]").change(function time() {
var time = this.value;
$("#timeDisp").text(time);
});
$("#amount").keyup(function amount() {
var amount = $("#amount").val();
$("#amountDisp").text(amount);
}).keyup();
});
我不知道如何获得这些变量(时间,金额)并做一些计数。例如时间+金额。 我怎么做的?因为我甚至无法在其他地方展示它们。只在内部功能。
答案 0 :(得分:3)
确实没有理由将这些值存储在持久变量中。只要你想要它们,就可以从它们的源头获取它们:
$("input[name=time]:checked").val()
和
$("#amount").val()
或者,如果您希望它们采用纯数字形式:
var time = parseInt($("input[name=time]:checked").val(), 10);
var amount = parseInt($("#amount").val(), 10);
以下是更改任一值时更新总计的代码:
$(document).ready(function () {
function calc() {
var total = parseInt($("input[name=time]:checked").val(), 10) + parseInt($("#amount").val(), 10);
$("#result").html(total);
}
$("input[name=time]").click(function() {
var time = this.value;
$("#timeDisp").text(time);
calc();
});
$("#amount").userChange(function amount() {
var amount = $("#amount").val();
$("#amountDisp").text(amount);
calc();
});
calc();
});
工作演示:http://jsfiddle.net/jfriend00/8gRr9/
仅供参考,此代码使用我的userChange jQuery插件(jsFiddle中的源代码)来检测文本字段(而不仅仅是键)的大量更改。
答案 1 :(得分:1)
您还可以使用JQuery在时间输入框的on change事件中添加时间输入字段和选项选中复选框的值。要使用JQuery在文本框中放置值,请在其选择器后使用.val()。这里有一个例子:http://jsfiddle.net/cbqps/2/
例如,将结果更改为输入文本框(如果要在文本框中显示时间和金额的总和):
<input type="text" id="result"></input>
然后按如下所示修改功能:
$(document).ready(function () {
$("input[name=time]").change(function time() {
var time = this.value;
var amount = $("#amount").val();
var result = parseInt(time,10) + parseInt(amount,10);
$("#timeDisp").text(time);
$("#result").val(result);
});
$("#amount").keyup(function amount() {
var amount = $("#amount").val();
$("#amountDisp").text(amount);
}).keyup();
});