-1

特定の日付からゼロまで実行されるjavascriptタイマーがあります。これは、私のhtml/phpページの送信ボタンを無効にするために必要です。これは私のフォームコードです。私はいくつかの方法を試しましたが、どれもうまくいかないようです

<form id="MakeBid" action="MakeBid.php" method="POST">
  <input type="hidden" name="propertyID" value ="1"/>
  <div>Bid Now <input type="text" name="pricesoldfor"/></div> 
  <input id = "submit" type="submit" value="Submit" /> 
</form>

これは私が持っているjavascriptコードです

function calcage(secs, num1, num2) {
    s = ((Math.floor(secs / num1)) % num2).toString();
    if (LeadingZero && s.length < 2) s = "0" + s;
    return "<b>" + s + "</b>";
}

function CountBack(secs) {
    if (secs < 0) {
        document.getElementById("cntdwn").innerHTML = FinishMessage;


        return;
    }
    DisplayStr = DisplayFormat.replace(/%%D%%/g, calcage(secs, 86400, 100000));
    DisplayStr = DisplayStr.replace(/%%H%%/g, calcage(secs, 3600, 24));
    DisplayStr = DisplayStr.replace(/%%M%%/g, calcage(secs, 60, 60));
    DisplayStr = DisplayStr.replace(/%%S%%/g, calcage(secs, 1, 60));
    document.getElementById("cntdwn").innerHTML = DisplayStr;
    if (CountActive) setTimeout("CountBack(" + (secs + CountStepper) + ")", SetTimeOutPeriod);
}

function putspan(backcolor, forecolor) {
    document.write("<span id='cntdwn' style='background-color:" + backcolor + "; color:" + forecolor + "'></span>");
}

if (typeof(BackColor) == "undefined") BackColor = "white";
if (typeof(ForeColor) == "undefined") ForeColor = "black";
if (typeof(TargetDate) == "undefined") TargetDate = "12/31/2020 5:00 AM";
if (typeof(DisplayFormat) == "undefined") DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
if (typeof(CountActive) == "undefined") CountActive = true;
if (typeof(FinishMessage) == "undefined") FinishMessage = "";
if (typeof(CountStepper) != "number") CountStepper = -1;
if (typeof(LeadingZero) == "undefined") LeadingZero = true;
CountStepper = Math.ceil(CountStepper);
if (CountStepper == 0) CountActive = false;
var SetTimeOutPeriod = (Math.abs(CountStepper) - 1) * 1000 + 990;
putspan(BackColor, ForeColor);
var dthen = new Date(TargetDate);
var dnow = new Date();
if (CountStepper > 0) ddiff = new Date(dnow - dthen);
else ddiff = new Date(dthen - dnow);
gsecs = Math.floor(ddiff.valueOf() / 1000);
CountBack(gsecs);​
4

4 に答える 4

0

最も簡単な方法は、送信ボタンを非表示にすることです。

document.getElementById('submit').style.display='none';
于 2012-04-18T11:15:05.973 に答える
0

以下の条件でタイマーが停止していると思いますので、ここにボタンを無効にするコードを入れてください。送信ボタンのIDをbtnsubmitに変更します

if (CountStepper == 0)
{
  CountActive = false;
  document.getElementById("btnsubmit").disabled = true; 
}
于 2012-04-18T11:16:15.823 に答える
0

jsタイマーが切れたらこのコードを呼び出します...

document.getElementById("xx").disabled = true;

送信ボタンIDをxxに入力します。

于 2012-04-18T11:12:47.393 に答える
0

やってみましたdocument.getElementById( 'submit' ).disabled = true;か?

CountBack次のように 関数を変更します。

function CountBack(secs) {
if (secs < 0) {
document.getElementById("cntdwn").innerHTML = FinishMessage;
document.getElementById( 'submit' ).disabled = true;

return;
}
于 2012-04-18T11:16:58.840 に答える