0

私はperlで小さなスクリプトを持っています。スクリプト内には「フォーム」があります。フォームは次のようになります。

sub print_form {
        my ($tt, $idnum) = @_;
        print "<CENTER>\n";
        print "<FORM METHOD='POST' ACTION='/cgi/thisscript.pl'>\n";
        print " <INPUT type='hidden' name='idnum' value='$idnum' />\n";
        print " <INPUT type='hidden' name='rain' value='$ttprefix' />\n";
        print " <LABEL FOR='pin'>label 1</LABEL>\n";
        print " <SELECT name='pin'>\n";
        my $profiles = $tt->get_profile_urls;
        for my $pin (keys %$profiles){
                print "         <OPTION value='$pin'>$profiles->{$pin}{name} ($pin)</OPTION>\n";
        }
        print " </SELECT>\n";
        print " <BR />\n";
        print " <LABEL FOR='invid'>Select the qouta</LABEL>\n";
        print " <SELECT name='invid'>\n";
        my $qouta = $tt->get_qouta;
        for my $invid (sort { $a <=> $b } keys %$qouta){
                my ($name, $pren) = ($qouta->{$invid}{name}, $qouta->{$invid}{pren});
                print "         <OPTION value='$invid'>$name ($pren)</OPTION>\n";
        }
        print " </SELECT>\n";
        print " <BR />\n";
        print " <LABEL FOR='qty'>qouta quantity</LABEL>\n";
        print " <INPUT type='text' name='qty' value='$atom' />\n";
        print " <BR />\n";
        print " <INPUT type='submit' value='submit'/>\n";
        print "</FORM>\n";
        print "</CENTER>\n";
}

たとえば、JavaScript関数(同じページ上)が自動的に「送信」ボタンを何度もクリックするように、ループしようとしています。
送信機能をjavascriptに「自動的に」クリックさせることは可能ですか? グリースモンキーを使用したユーザースクリプトでこれが可能であることは理解していますが、これをすべてWebページで実行できるようにしたいと考えています。

4

1 に答える 1

1

あなたは何をループしようとしていますか?

コードには送信ボタンが 1 つしかありません。JavaScript では、フォームが利用可能なときはいつでも次のようにフォームを送信できます (つまり、onload などのイベント)。

document.forms[0].submit();

フォームの送信を複数回クリックしたい場合 (何らかの理由で)、必要な送信数だけループで送信します (ループしたいものです)。そうするのは悪い選択のように思えますが。または、その送信ボタンに id を与えて、JS でクリックをシミュレートすることもできます。

document.getElementById("submit_id").click();
于 2013-10-20T02:19:12.203 に答える