私は現在、基本的なフォームに取り組んでいます。このフォームでやりたいことは、送信/ボタンを押して最初にフィールドの値を変更してから、通常どおりフォームを送信することです。すべて次のようになります。
<form name="myform" id="myform" action="action.php">
<input type="hidden" name="myinput" value="0" />
<input type="text" name="message" value="" />
<input type="submit" name="submit" onclick="DoSubmit()" />
</form>
そして、これが私がJavaScriptをどの程度使用したかです。 「myinput」の値を1に変更しますが、フォームを送信しません。私は本当にJavaScriptの初心者なので、これがあまりにも単純な質問である場合はご容赦ください。
function DoSubmit(){
document.myform.myinput.value = '1';
document.getElementById("myform").submit();
}
代わりに次のようなことができます:
<form name="myform" action="action.php" onsubmit="DoSubmit();">
<input type="hidden" name="myinput" value="0" />
<input type="text" name="message" value="" />
<input type="submit" name="submit" />
</form>
次に、DoSubmit関数を変更して、trueを返すだけで、「OK、今すぐフォームを送信できる」ことをブラウザに示します。
function DoSubmit(){
document.myform.myinput.value = '1';
return true;
}
編集:送信ボタンでonclickイベントを使用することにも注意してください。イベントの順序はすぐにはわからないため、ユーザーがテキストボックスでReturnキーを押すなどして送信した場合、コールバックは呼び出されません。
document.getElementById("myform").submit();
フォームタグにはIDがないため、これは機能しません。
このように変更すると、動作するはずです:
<form name="myform" id="myform" action="action.php">
いいえ。入力タイプが送信の場合、マークアップでonsubmit
イベントを宣言し、必要な変更を行う必要があります。つまり、フォームタグでonsubmit
を定義します。
そうでない場合は、入力タイプをボタンに変更してから、そのボタンのonclick
イベントを定義します。
ここに簡単なコードがあります、ここで入力するためのidを設定する必要があります 'myInput'を呼び出します:
var myform = document.getElementById('myform');
myform.onsubmit = function(){
document.getElementById('myInput').value = '1';
myform.submit();
};
サーバーへのポストバックで機能するname
属性に基づいて要素にアクセスしようとしていますが、javascriptはid
属性に応答します。 id
と同じ値を持つname
を追加すると、すべて正常に機能するはずです。
<form name="myform" id="myform" action="action.php">
<input type="hidden" name="myinput" id="myinput" value="0" />
<input type="text" name="message" id="message" value="" />
<input type="submit" name="submit" id="submit" onclick="DoSubmit()" />
</form>
function DoSubmit(){
document.getElementById("myinput").value = '1';
return true;
}
私の問題は、document.getElementById("myinput").Value = '1';
として割り当てていたことでした。
Valueの資本Vに注目してください。一度小さなケースに変更したら、値、データが投稿を開始しました。奇妙なことに、JavaScriptエラーも発生していませんでした
onchange Eventを使用できますか
<form name="myform" id="myform" action="action.php">
<input type="hidden" name="myinput" value="0" onchange="this.form.submit()"/>
<input type="text" name="message" value="" />
<input type="submit" name="submit" onclick="DoSubmit()" />
</form>
これはあなたを助けるかもしれません。
あなたのHTML
<form id="myform" action="action.php">
<input type="hidden" name="myinput" value="0" />
<input type="text" name="message" value="" />
<input type="submit" name="submit" onclick="save()" />
</form>
あなたのスクリプト
<script>
function save(){
$('#myinput').val('1');
$('#form').submit();
}
</script>