私の見解では、フォームの3つの非表示フィールドに2つのボタンを設定して送信します。それはうまくいかず、理由を知ることができません。何か案は?ボタンを呼び出すjavascript関数のエラー
@using (Html.BeginForm(null, null, FormMethod.Post,
new { name = "form", id = "form" }))
{
@Html.Hidden("First")
@Html.Hidden("Second")
@Html.Hidden("Third")
}
と2つのボタン:
<button class="Button" id="ButtonA" onclick="javascript:FillAndSubmit(this.id);">
CaptionA
</button>
<button class="Button" id="ButtonB" onclick="javascript:FillAndSubmit(this.id);">
CaptionB
</button>
私は内部のボタンを配置した場合
<script language="javascript" type="text/javascript">
function FillAndSubmit(thisid) {
$('input[name=First]').val(thisid);
$('input[name=Second]').val(@Model.ID);
$('input[name=Third]').val(@ViewBag.Something);
document.form.submit();
}
</script>
Aは、目に見えないフィールドを持つフォームを持っている:
私は、次のコードを持っていますフォームの範囲を指定すると、非表示のフィールドにデータを入力することなく送信されます。したがって、関数を呼び出さないだけです。 Javascriptは同じアプリケーションの他のページでも動作しています。
を追加しました:
生成されたソース:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Title</title>
<link href="/Content/Site.css" rel="stylesheet" type="text/css" />
<script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
<script src="/Scripts/modernizr-1.7.min.js" type="text/javascript"></script>
</head>
<body>
<script language="javascript" type="text/javascript">
function Botao(thisid) {
$('input[name=First]').val(thisid);
$('input[name=Second]').val(41);
$('input[name=Third]').val(10/5/2012 1:58:02 PM);
document.form.submit();
}
</script>
...
Some div's with some text
...
<form action="/Controller/Action/" id="form" method="post" name="form"><input id="First" name="First" type="hidden" value="" /><input data-val="true" data-val-required="The DateTime field is required." id="Second" name="Second" type="hidden" value="10/5/2012 1:58:02 PM" /><input id="Third" name="Third" type="hidden" value="" /></form>
<button class="Button" id="ButtonA" onclick="javascript:Botao(this.id);">
CaptionA
</button>
<button class="myButton" id="ButtonB" onclick="javascript:Botao(this.id);">
CaptionB
</button>
</body>
</html>
生成されたソースを表示してください。 – SLaks
ブラウザのJSコンソールにエラーが表示されますか? 'onclick'属性の' javascript: 'の部分を削除してみましたか? 'console.log'を使ってデバッグしようとしましたが、その関数が呼び出されていますか?ブラウザのJSコンソールから関数を直接呼び出そうとしましたか? – fguillen
'javascript:'を削除しても何もしませんでした。私は今JSコンソールをチェックします。 –