2016-12-03 5 views
0

JS経由でRESTful URLを作成する方法を理解できません。 私のフォームです。JQueryを使用してFORMアクションのREST URLを置き換える方法は?

<form id="searchform" action="" method="get"> 
    <input type="text" name="id"/> 
    <input type="text" name="yourname"/> 
    <input type="submit" value="Submit"/> 
</form> 

以下はJSです。

<script type="text/javascript" language="javascript"> 
$('input[type="submit"]').on('click',function(e) 
{ 
    e.preventDefault(); 
    var forms = $(this).parents('searchform'); 
    var id = forms.attr('id'); 
    var yourname = forms.attr('yourname'); 

    var dataString = forms.serialize()+'/'+id+'/'+yourname; 

    forms.submit(); 

}); 
</script> 

私は '?ID = 1 & yournameの= XXX' に '/ 1/XXX' のような元のフォームのURLを変更したいと思います。 変更する場所を教えてください。前もって感謝します!

+0

どのようなエラーが発生していますか? – ScanQR

+0

ありがとう@TechBreak。残念ながら、何も起こらなかった。私はあなたの答えにそれを記述します。 –

答えて

1

下回る結果を得ることができますが、フォームアクションを更新する必要があり、次のように前に提出するが、

<script type="text/javascript" language="javascript"> 
$('input[type="submit"]').on('click',function(e) 
{ 
    e.preventDefault(); 
    var forms = $('form#searchform'); 
    var id = forms.find('#yourid').val(); 
    var yourname = forms.find('#yourname').val(); 
    //update your action to your url and submit 
    var dataString = $(this).attr('action') + '/' + id + '/' + yourname; 
    forms.attr('action', dataString).submit(); 
}); 
</script> 

はまたあなたの入力要素にidを与えると、フォームにnameを与えます値を取得するにはval()を使用してください。

<form id="searchform" action="" method="POST" name="searchForm'> 
    <input type="text" name="yourid" id="yourid"/> 
    <input type="text" name="yourname" id="yourname" /> 
    <input type="submit" value="Submit"/> 
</form> 

EDIT:OPの新しい要件の後、メソッドをGETからPOSTに更新します。

+0

感謝!私はあなたの答えを試みたが、それは動作しません。何も起こらない。そして、私が2つの貴重な(id、yourname)をクロムデバッガで添付すると、何も表示されません。おそらく、2人の貴重な人はフォームデータを取得できません。気分はどうですか? –

+0

@NoriakiTakamizawa更新された回答を試してください。 .val()を使用し、idで検索する必要があります。 attr()は属性値を与え、入力値は与えません。 – ScanQR

+0

おっと!できます!どうもありがとう! –

0

あなたは単に

function doWork() { 
     $.ajax({ 
      url: "url goes here", 
      type: "GET", 
      dataType: "json", 
      success: function (result) { 
       Console.log(result); 
      } 
     }); 

    } 
+0

私はそれが違うと思います。しかし、ありがとう。 –

1

はこれを試してみてください:

$("form").submit(function(e) { 
    e.preventDefault(); 

    var id = $("input[name=id]").val(), 
    yourname = $("input[name=yourname]").val(); 

    var dataString = $(this).attr('action') + '/' + id + '/' + yourname; 
    console.log(dataString); // Submit your form to dataString 
}); 

dataStringは、あなたが期待しているURLが含まれています。試してみる。

+0

ありがとう!しかし、それが適用された後、デバッガは、 'undefined'と言っていました。 idsの設定にもかかわらず、これまでのところうまくいきません。 –

+0

コードの入力にIDを指定する必要はありません。ここにあなたを助けるための[働くプランカー](http://plnkr.co/edit/hptwiF5gvK7qqZyZzG09)があります。コンソールの出力を確認します。これはまさにあなたが望むものです。 – 31piy

+0

ありがとう!あなたは正しいかもしれない。 IDを置くと動作します。 –

関連する問題