Semantic UIを使用してフォームを検証する方法を知っており、「フォームには検証エラーがありません。送信中です」というメッセージをコンソールで読むことさえできます。しかし、これはどこに提出していますか?実際にフォームを送信したいのですが、セマンティック UI のレイアウトの仕方から、送信先などを指定できないようです。
このチュートリアルを読みましたが、セマンティック UI だけでなく、送信に Angular を使用しています。
ここで本当に単純なものが欠けていますか?
Semantic UIを使用してフォームを検証する方法を知っており、「フォームには検証エラーがありません。送信中です」というメッセージをコンソールで読むことさえできます。しかし、これはどこに提出していますか?実際にフォームを送信したいのですが、セマンティック UI のレイアウトの仕方から、送信先などを指定できないようです。
このチュートリアルを読みましたが、セマンティック UI だけでなく、送信に Angular を使用しています。
ここで本当に単純なものが欠けていますか?
jQuery の ajax を使用できます。
//Get value from an input field
function getFieldValue(fieldId) {
// 'get field' is part of Semantics form behavior API
return $('.ui.form').form('get field', fieldId).val();
}
function submitForm() {
var formData = {
field1: getFieldValue('someId')
};
$.ajax({ type: 'POST', url: '/api/someRestEndpoint', data: formData, success: onFormSubmitted });
}
// Handle post response
function onFormSubmitted(response) {
// Do something with response ...
}
編集: また、フォームの onSuccess メソッドを使用して submitForm 関数を実行できます。つまり、フォームを初期化するときに:
$('.ui.form').form(validationRules, { onSuccess: submitForm });
onSuccess は、[送信] ボタンがクリックされ、指定したルールに基づいてフォームが有効である場合にのみ呼び出されます。
編集: 通常の HTML フォームの動作が必要な場合は、セマンティック css クラスをform
タグに追加する必要があります。
<form class="ui form" method="POST" action="/signup">...</form>
次に、jQuery を使用して検証ルールを設定します。これにより、デフォルトの HTML フォームの動作が得られます。つまり、送信ボタンを押すと、上記の場合は /signup に対して POST 要求が行われます。いずれかのルールがトリガーされた場合、検証エラーがなくなるまで送信は阻止されます。
Semantic UI has it's own API to submit form. for example:
$('.ui.form .submit.button')
.api({
url: 'server.php',
method : 'POST',
serializeForm: true,
beforeSend: function(settings) {
},
onSuccess: function(data) {
}
});
ajax を使用したくない場合はどうすればよいでしょうか?!
これを使用してください:
$( "#reg_btn" ).click(function(event){
event.preventDefault();
$('#register_form').submit();
});
この場合、<button>
タグを使用できます...代わりにクラシックタグを使用する必要はありません