1

2 つの入力タイプ = ボタン (id=Start、id=Stop、1 つの入力タイプ = テキスト (id=TimeMINutes)、1 つのスパン (id=spCountDown) を含む列を持つ asp.net リストビューがあります。リストビューを含むこれらすべてのコントロールは...

 <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」入力タイプ = 「テキスト」と「spCountDown」スパンを 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 = ''
  }

正しい行から正しい値を取得して設定できるように、これらのコントロールを渡すにはどうすればよいですか?

ありがとう

4

2 に答える 2

0

getElementById を 2 回呼び出します。

これを使えば

<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 にキャストすることを忘れないでください

于 2013-01-23T20:49:51.040 に答える
0

すみません、初めて即答しました。parseInt() を使用して、入力要素 (文字列) の値を整数にキャストできるようです。

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

次の If ステートメントでは、文字列を int と比較しますが、誤解していなければ。

また、提案として、変数にタイマー値を保存し、入力要素から文字列を毎秒キャストしないでください。このように考えてください。入力要素から時刻を読み取るのではなく、現在の時刻を表示するために使用します。それははるかに安全で、理論的にはリソースの要求が少なくなります。

于 2013-01-23T16:59:22.300 に答える