如何使用JQuery替换FORM Action上的REST URL?

时间:2016-12-03 09:08:29

标签: javascript jquery

我无法弄清楚如何通过JS制作RESTful 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>

我想更改原始表单网址,例如&#39;?id = 1&amp; yourname = xxx&#39;进入&#39; / 1 / xxx&#39;。 请告诉我在哪里修改?提前谢谢!

3 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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将包含您期望的网址。试一试。

答案 2 :(得分:0)

您可以在

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

    }