0

Ajax から返された HTML には、テーブルと送信ボタンが含まれています (type=button)

この表には、表の行を複製するための jQuery ルーチンが含まれています (各行で 1 つのファイルを選択/アップロードでき、<input type="text">ドキュメント タイトルと<input type="file">.

<table id="MyTable">
<tr name="tr3" id="tr3">
    <td>
        <input type="text" name="dt[]" id="dt1">
    </td>
    <td>
        <input type="file" name="fff[]" id="ff1">
    </td>
</tr>
</table>
<input type="button" name="sub1" id="sub1" value="Submit" onclick="checkform();">

フォームの送信時に、各ドキュメントのタイトルが入力されていることを確認する必要があるため、送信ボタンは JavaScript ルーチンを呼び出します。

function checkform()
{
    if(document.updateprojectdocs.dt[0].value=='')
    {
        alert("Fields marked with an asterisk are required.");
        document.updateprojectdocs.dt[0].focus();
        return;
    }

    document.getElementById("TheForm").submit();
}

もちろん、これは機能しません (スクリプトはフォーム送信前に停止しますが、前の if 構造を削除すると送信されます)。誰かが理由と修正方法を教えてもらえますか?

dt[]また、チェックするフィールドの数は不確定です。これを行うためにループを構成するにはどうすればよいですか? jQuery の .find().each() を使用できるのではないかと思いますが、それがどのようになるかわかりませんか?


更新:

以下の DaHaKa の回答のおかげで、解決に近づいています。DaHaKa の提案されたコードを jQuery に改造しました。

DaHaKa との通信に問題がありました。何らかの理由で、彼が投稿した後、長い間、長い間、応答が表示されませんでした (問題はおそらく私の側にありました)。待っている間 (数時間)、問題の一部を別の質問に投稿し、そこで解決しました。その他の質問はFULL CORRECT ANSWERに発展し、私は将来の視聴者をそこに誘導します. ユーザーが完全なソリューションの作業 JSFiddle をthecodeparadox作成したことに注意してください。

DaHaKa は喜んで協力してくれましたが、通信の問題が発生したため、この質問を DaHaKa に任せました。ありがとう、D.

4

1 に答える 1

1

この場合、jQuery の各関数は必要ありません。次のように簡単に実行できます =>

試す

<table id="MyTable">
<tr name="tr3" id="tr3">
    <td>
        <input type="text" name="dt" id="dt1">
    </td>
    <td>
        <input type="file" name="fff" id="ff1">
    </td>
</tr>
</table>

<input type="button" name="sub1" id="sub1" value="Submit">

JavaScript

document.getElementById("sub1").onclick = function(){
    if (document.getElementById("dt1").value!=""){
        document.getElementById("TheForm").submit();
    } else {
        alert("Empty Field(s) !");
    }
};

idsタグではなくhtml タグから JavaScript でNAME使用する必要があります

$_FILES['file']['error']そして、ファイル入力についてどう思いますか。スーパーグローバル変数タイプを使用して、php などのサーバー側スクリプト言語から理解できます。

于 2012-09-14T17:10:26.977 に答える