Javascript功能不起作用?

时间:2012-08-03 05:35:27

标签: javascript android html

我正在使用下面的代码,但似乎我的setValue()方法无效。有人能指出这些代码有什么问题吗?

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script language="javascript"> 
function rand ( n )
{
    document.getElementById("orderRefId").value =  ( Math.floor ( Math.random ( ) * n + 1 ) );
}

function setValue(amount1)
{
    myValue = amount1;
    document.getElementById("amount").value = myValue;
  }


</script>
</head>
<body onLoad="rand( 2000000 )">
        <!-- 
            Note: https://www.pesopay.com/b2c2/eng/payment/payForm.jsp for live payment URL
                  https://test.pesopay.com/b2cDemo/eng/payment/payForm.jsp for test payment URL
        -->
        <form method="POST" name="frmPayment" action="https://test.pesopay.com/b2cDemo/eng/payment/payForm.jsp">
        <table>
        <tbody>
        <tr>
            <td>Order Reference No. (your reference number for every transaction that has transpired):</td> 
            <td><input type="text" id="orderRefId" name="orderRef" value="Test-001"/></td>
        </tr>   
        <tr>
            <td>Amount:</td>
            <td><input type="text" onLoad = "setValue()" name="amount" value=""/></td>

        </tr>
        <tr>
            <td>Currency Code - "608" for Philippine Peso, "840" for US Dollar:</td>
            <td><input type="text" name="currCode" value="608"/></td>
        </tr>   
        <tr>
            <td>Language:</td>
            <td><input type="text" name="lang" value="E"/></td>
        </tr>   
        <tr>
            <td>Merchant ID (the merchant identification number that was issued to you - merchant IDs between test account and live account are not the same):</td> 
            <td><input type="text" name="merchantId" value="18056869"/></td>
        </tr>
        <tr>    
            <td>Redirect to a URL upon failed transaction:</td>
            <td><input type="text" name="failUrl" value="http://www.yahoo.com?flag=failed"/></td>
        </tr>   
        <tr>
            <td>Redirect to a URL upon successful transaction:</td>
            <td><input type="text" name="successUrl" value="http://www.google.com?flag=success"/></td>
        </tr>
        <tr>
            <td>Redirect to a URL upon canceled transaction:</td>
            <td><input type="text" name="cancelUrl" value="http://www.altavista.com?flag=cancel"/></td>
        </tr>
        <tr>
            <td>Type of payment (normal sales or authorized i.e. hold payment):</td> 
            <td><input type="text" name="payType" value="N"/></td>
        </tr>
        <tr>    
            <td>Payment Method - Change to "ALL" for all the activated payment methods in the account, Change to "BancNet" for BancNet debit card payments only, Change to "GCASH" for GCash mobile payments only, Change to "CC" for credit card payments only:</td>
            <td><input type="text" name="payMethod" value="ALL"/></td>
        </tr>
        <tr>    
            <td>Remark:</td>
            <td><input type="text" name="remark" value="Asiapay Test"/></td>
        </tr>
        <!--<tr>    
            <td>Redirect:</td>
            <td><input type="text" name="redirect" value="1"/></td>
        </tr>-->
        <tr>
            <td></td>
        </tr>   

        <input type="submit" value="Submit">
        </tbody>
        </table>
        </form>
    </body>
    </html> 

注意:变量“amount1”来自我的android。并且它没有引起问题,因为我在其他代码中使用它。

我会非常感谢任何想法。

3 个答案:

答案 0 :(得分:1)

JavaScript处于WebView中禁用的默认设置中。你需要先激活它。

YourWebView.getSettings().setJavaScriptEnabled(true);

您还需要更正JavaScript。您调用函数document.getElementById(...),但您的input元素没有Id而是名称。因此,您需要致电document.getElementsByName(...)[0]

答案 1 :(得分:1)

1.您没有ID为“amount”的DOMInputElement。你需要像这样更改html:

<input type="text" onLoad = "setValue()" name="amount" id="amount" value=""/>

或者像这样的js:

function setValue(amount1)
{
    myValue = amount1;
    document.frmPayment.amount.value = myValue;
}

2.第二个问题是你不能将onLoad事件附加到input元素。你能做什么,就是把&lt; script /&gt;使用setValue()调用或更改你的&lt; body&gt;标记为:

<body onLoad="rand(200000);setValue();">

答案 2 :(得分:0)

           function text() {
        var dt = new Date();
        dt.format("dd-mmm-yyyy");
        var newdt = dt.getFullYear();
        var tt = document.getElementById("ctl00_ContentPlaceHolder1_txtPolicyStartDate").value;           
        var dt2 = new Date.parseLocale(tt, 'dd-MMM-yyyy');     

        dt2.setFullYear(dt2.getFullYear() + 1);
        dt2.setDate(dt2.getDate() - 1);
        document.getElementById("ctl00_ContentPlaceHolder1_txtPolicyExpiryDate").value = dt2.format("dd-MMM-yyyy");
        return dt2;
    }