-1

我有这个代码: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();

});

而且我不知道如何获取这些变量(时间、数量)并进行一些计数。例如时间+金额。我该怎么做?因为我什至无法在其他任何地方显示它们。只有内部函数。

4

2 回答 2

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 中的源代码),它检测到对文本字段(不仅仅是键)的大量更改。

于 2013-04-13T17:16:42.780 回答
1

您还可以使用 JQuery 在时间输入框的更改事件中添加时间输入字段的值和选项选中复选框。要使用 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();


});
于 2013-04-13T17:46:23.547 回答