从asp.net listview传递输入类型=文本和范围

时间:2013-01-23 16:51:16

标签: javascript asp.net

我有一个asp.net listview,其列包含2个输入类型=按钮(id =开始,id =停止,1输入类型=文本(id = TimeMInutes)和1 span(id = spCountDown))。 从所有这些控件(包括listview)呈现的HTML是......

 <table id="ctl00_ContentPlaceHolder1_lstViewFormulas_itemPlaceholderContainer" style="vertical-align:top; border:solid 1px gray">
        <tr id="ctl00_ContentPlaceHolder1_lstViewFormulas_Tr1" style="vertical-align:top; border:solid 1px gray">
            <td class="ListViewHeader" style="width:20%">
                 <span id="ctl00_ContentPlaceHolder1_lstViewFormulas_lblFormName">Step Name</span></td>
            <td class="ListViewHeader" style="width:10%" align="center">
                 <span id="ctl00_ContentPlaceHolder1_lstViewFormulas_lblTiming">Timing</span></td>
            <td class="ListViewHeader" style="width:30%">
                 <span id="ctl00_ContentPlaceHolder1_lstViewFormulas_Label6">Area Used</span></td>
            <td class="ListViewHeader" style="width:10%">
                 <span id="ctl00_ContentPlaceHolder1_lstViewFormulas_lblClock">Timer</span></td>
            <td class="ListViewHeader" style="width:30%">
                 <span id="ctl00_ContentPlaceHolder1_lstViewFormulas_lblProd">Products</span></td>
        </tr>


        <tr style="">
           <td>
              <span id="ctl00_ContentPlaceHolder1_lstViewFormulas_ctrl0_lblFormName">Step 1</span>
           </td>
           <td>
              <span id="ctl00_ContentPlaceHolder1_lstViewFormulas_ctrl0_lblTiming">20</span>
           </td>
           <td>
              <span id="ctl00_ContentPlaceHolder1_lstViewFormulas_ctrl0_lblAreaUsed">Scalp</span>
           </td>
           <td>

            <input type="button" onclick="countdown(document.getElementById('TimeMinutes'), document.getElementById('spCountDown'))"; value="Start" id="Start" />
            <input type="button" onclick='stopcountdown()'; value="Stop" id="Stop" />


            <input type="text" value='20' id="TimeMinutes" />
              <span id="spCountDown"></span>
           </td>

我正在尝试将“TimeMinutes”输入type =“text”和“spCountDown”Span传递给javascript函数。

我尝试了几种方法,包括......

<input type="button" onclick="countdown(document.getElementById('TimeMinutes'), document.getElementById('spCountDown'))"; value="Start" id="Start" />

我也尝试使用输入id在javascript函数中找到这些控件,但是我没有得到正确的行。

我需要从输入类型=文本中获取值,并在javascript函数中开始倒计时。

  var interval;
  var seconds=0;
  function countdown(txtminutes, spanid) {
      interval = setInterval(function () {
          var sp = document.getElementById("spanid");
          var minutes = document.getElementById("txtminutes").value
          if (seconds == 0) {
              if (minutes == 0) {
                  sp.innerHTML = "countdown's over!";
                  clearInterval(interval);
                  return;
              } else {
                  minutes--;
                  seconds = 60;
              }
          }
          if (minutes > 0) {
              var minute_text = minutes + (minutes > 1 ? ' minutes' : ' minute');
          } else {
              var minute_text = '';
          }
          var second_text = seconds > 1 ? 'seconds' : 'second';
          sp.innerHTML = minute_text + ' ' + seconds + ' ' + second_text + ' remaining';
          seconds--;
      }, 1000);
  }

  function stopcountdown() {
      window.clearInterval(interval);
      var sp = document.getElementById("CountDown");
      sp.innerHTML = ''
  }

如何传递这些控件以便我可以从右侧获取并设置正确的值?

由于

2 个答案:

答案 0 :(得分:0)

抱歉,我第一次快速回答。看起来你可以使用parseInt()将输入元素(字符串)中的值转换为整数。

var minutes = parseInt(document.getElementById("txtminutes").value)

在下面的If语句中,你将字符串与int进行比较,如果我没有误解某些东西。

另外,作为建议,您应该将计时器值存储在变量中,而不是每秒从输入元素中转换字符串。可以这样想,不要从输入元素中读取时间,只需用它来显示当前时间。它更安全,理论上对资源要求更低。

答案 1 :(得分:0)

你两次调用getElementById!

如果你使用这个

<input type="button" onclick="countdown(document.getElementById('TimeMinutes'), document.getElementById('spCountDown'))"; value="Start" id="Start" />

然后改变这个

var minutes = document.getElementById("txtminutes").value;

到这个

var minutes = txtminutes.value;

您将对元素的引用作为参数传递,然后尝试创建对id为引用的元素的新引用。那不行。只需删除document.getElementById部分。

另外......别忘了使用parseInt()

将字符串转换为int