0

これが機能しない理由がわかりません。先週は正常に機能していましたが、現在は機能していません。間違って何かを変更したに違いないと思いましたが、全体を調べた後、何も見つかりませんでした。だから、そもそも私のコードがあまり良くなかったのではないかと今は思っています。delete.jsファイルは次のとおりです。

function deleterecord(form)
    {

    var checkBox = document.edit.checkbox;
    var lenBox = checkBox.length;
    var foundBox = false;

    while( lenBox--> 0 )
        {
            if( checkBox[lenBox].checked === true )
                {
                    foundBox = true;
                    break;
                }
        }

    if( !foundBox )
        {
        alert("Please select a record to delete");
        return;
        }

    var r=confirm("Once deleted, these records are gone forever.\n\n Are you SURE you want to proceed? ");
    if (r==true)
        {
        form.submit();
        }
    else
        {
        alert("Phew! That was close!\n\n No records were deleted.");
        window.location.reload(true);
        }
    return;
    }

...そしてここにhtmlフォームがあります:

<form action="process_delete.php" method="post" id="edit" name="edit">
<table cellpadding="4px" cellspacing="2px" border="1">

    <tr align="center">
    <td>Aircraft Reg</td>
    <td>Date Installed</td>
    <td>Prefix</td>
    <td>Part Number</td>
    <td>Flight Control</td>
    <td>Lat Position</td>
    <td>Long Position</td>
    <td>Vert Position</td>
    <td>Location</td>
    <td>Material</td>
    <td>OEM/PMA</td>
    <td>Select</td> 
    </tr>

    $result = mysql_query("SELECT * FROM installed $filter ORDER BY aircraft_reg , part_number, date_installed ASC");
    $pagerow = mysql_num_rows($result);
        if ($pagerow > 0 ) 
            {
            while($row = mysql_fetch_array($result))
                {
                echo "<tr>";
                echo "<td>" . $row['aircraft_reg'] . "</td>";
                echo "<td>" . $row['date_installed'] . "</td>";
                echo "<td>" . $row['prefix'] . "</td>";
                echo "<td>" . $row['part_number'] . "</td>";
                echo "<td>" . $row['flight_control'] . "</td>";
                echo "<td>" . $row['lat_position'] . "</td>";
                echo "<td>" . $row['long_position'] . "</td>";
                echo "<td>" . $row['vert_position'] . "</td>";
                echo "<td>" . $row['location'] . "</td>";
                echo "<td>" . $row['material'] . "</td>";
                echo "<td>" . $row['oempma'] . "</td>";
                echo "<td align=\"center\"><input type=\"checkbox\" selected=\"\" id=\"checkbox\" name=\"check_list[]\" value=\"" . $row['id'] . "\"></td>";
                echo "</tr>";
                }
            echo "<tr align=\"center\">";
            echo "<td colspan=\"12\"><input type=\"button\" value=\"Delete Selected\"  style=\"width:150px; height:30px;\" onClick=\"deleterecord(form)\"></td>";
            echo "</tr>";
            }
        else
            {
            echo "<tr><td align=\"center\" colspan=\"12\"><h2>No Records To Display</h2></td></tr>";
            }   
    </table>

</form>

ordocument.edit.checkbox;などのさまざまなバリエーションを試しましたが、機能させることができません。これが役立つ場合はjsfiddleがあり、phpビットを削除し、代わりにいくつかのサンプル値を入力しました。おそらくおわかりのように、私は Javascript に非常に慣れていませんが、最善を尽くしており、提供できるガイダンスがあれば本当に感謝しています。document.getElementById["edit"].checkbox;document.getElementById["checkbox"];

4

1 に答える 1

2

すべてのチェックボックス要素をループしたいので、名前で取得する必要があります。

var checkBox = document.getElementsByName('check_list[]');

これが更新されたフィドルです

于 2012-10-14T10:40:59.960 に答える