2016-12-03 18 views
0

我無法弄清楚如何通過JS製作RESTful URL。 這是我的表格。如何使用JQuery替換FORM Action上的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'。 請讓我知道在哪裏修改?提前致謝!

+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> 

name到您的表單,也給id您輸入元素和用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> 

編輯:在OP的新要求之後,更新從GET到POST的方法。

+0

讚賞!雖然我已經嘗試過你的答案,但它不起作用。什麼都沒發生。當我通過chrome調試器附加兩個有價值的(id,yourname)時,什麼也不顯示。可能這兩個寶貴的資料無法獲得表格數據。你覺得怎麼樣? –

+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

謝謝!但是在應用之後,調試人員說貴重物品的'未定義'。儘管設置了ID,但目前還不行。 –

+0

您無需爲您的代碼指定工作代碼。這是[一個工作的重擊者](http://plnkr.co/edit/hptwiF5gvK7qqZyZzG09)來幫助你。觀察控制檯中的輸出。這正是你想要的。 – 31piy

+0

謝謝!你可能是對的。放入ID後,它就可以工作。 –