簡體   English   中英

Javascript / HTML-將函數返回變量傳遞到隱藏的輸入值中

[英]Javascript/HTML - Passing function return variable into a hidden input value

我已經閱讀了很多關於此的文章,但在將返回變量從函數傳遞到隱藏的輸入值時仍然遇到問題。 該功能是檢查頁面上的所有單選按鈕(其中的12個)並找到被選中的按鈕。 它正在將NULL或javascript傳遞給screen.php。 我已經測試了checked()函數,它可以工作(使用alert()來顯示值)。 我已經讀過很多關於將值傳遞給隱藏輸入的文章,但這些解決方案都不適合我。

如果您需要查看更多代碼,可以將其發布到pastebin上。

<script language="text/javascript">
    function checked()
    {
        var inputs = document.getElementsByClassName('radio');
        var valueSelected;
        for (var i = 0; i < inputs.length; i++) {
            if (inputs[i].checked) valueSelected = inputs[i].value;
        }

        return valueSelected;
    }
    </script>
</head>

<body>
    <div id="header-wrapper">
        <div id="header">
            <div id="logo">
                <h1><a href="index.php">KSM</a></h1>
            </div>
        </div>
        <div id="buttons">
        <ul>
        <li>
        <form id="form_ready" method="post" action="../backend/screen.php">
            <input type="hidden" name="screenid" value="1" />
            <input type="hidden" name="status" value="READY" />
            <input type="hidden" name="pickupid" id="pickupid" value="" />
            <input type="submit" class="submit" name="READY" onclick="document.getElementById('pickupid').value = checked();">
        </form>
        <div id="search">
            <ul id="nav">
                <li class="tab1"><a href="index_tbl.php">Ordered</a></li>
            </ul>
        </div>
        <div id="content">
            <div id="container">
            <table>
                <tr>
                <td>
                    <input type="radio" class="radio" name="pickup" id="1" value="001" />
                        <label for="1"> <span>001</span> </label>
                </td>
                <td>
                    <input type="radio" class="radio" name="pickup" id="2" value="002" />
                        <label for="2"> <span>002</span> </label>
                </td>
                <td>
                    <input type="radio" class="radio" name="pickup" id="3" value="003" />
                        <label for="3"> <span>003</span> </label>
                </td>
                <td>
                    <input type="radio" class="radio" name="pickup" id="4" value="004" />
                        <label for="4"> <span>004</span> </label>
                </td>
                </tr>
                <tr>
                <td>
                    <input type="radio" class="radio" name="pickup" id="5" value="005" />
                        <label for="5"> <span>005</span> </label>
                </td>
                <td>
                    <input type="radio" class="radio" name="pickup" id="6" value="006" />
                        <label for="6"> <span>006</span> </label>
                </td>
                <td>
                    <input type="radio" class="radio" name="pickup" id="7" value="007" />
                        <label for="7"> <span>007</span> </label>
                </td>
                <td>
                    <input type="radio" class="radio" name="pickup" id="8" value="008" />
                        <label for="8"> <span>008</span> </label>
                </td>
                </tr>
                <tr>
                <td>
                    <input type="radio" class="radio" name="pickup" id="9" value="009" />
                        <label for="9"> <span>009</span> </label>
                </td>
                <td>
                    <input type="radio" class="radio" name="pickup" id="10" value="010" />
                        <label for="10"> <span>010</span> </label>
                </td>
                <td>
                    <input type="radio" class="radio" name="pickup" id="11" value="011" />
                        <label for="11"> <span>011</span> </label>
                </td>
                <td>
                    <input type="radio" class="radio" name="pickup" id="12" value="012" />
                        <label for="12"> <span>012</span> </label>
                </td>
                </tr>
            </table>
        </div>
    </div>
</body>

當前的代碼正在執行的操作是在JS有時間執行功能並將數據放入隱藏輸入之前提交表單。 我並不是真的建議您按照現在的方式進行操作,但這是一個快速解決方案。

在您的HTML中將表單更改為此

    <form id="form_ready" method="post" action="../backend/screen.php" onsubmit="return checked()">

並在您的JS中將您選中的函數更改為:

function checked(){
    var inputs = document.getElementsByClassName('radio');
    var valueSelected;
    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].checked) valueSelected = inputs[i].value;
    }

    return (document.getElementById('pickupid').value = valueSelected);
}

另外,擺脫該提交按鈕的onclick。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM