更改表单的输入值并使用jQuery提交

时间:2017-04-23 23:01:38

标签: javascript php jquery html forms

我有以下HTML代码:

<html>
<!-- assume jquery is loaded -->
<body>
    <form id="sform" method="get" style="display:none;">
        <input type="hidden" name="eid" />
        <input type="hidden" name="returnURL" />
        <input type="hidden" name="returnID" value="ieid" />
        <select id="dropdownlist" name="ieid">
            <option selected="selected"></option>
        </select>
    </form>
</body>
</html>

用户输入的是电子邮件地址,它会(在服务器端使用PHP)检查凭据,如果有效,则返回以下JSON对象(在这种情况下,假设值是有效的URL(即。{{ 1}}):

http://sitehere.com/somethingelse

当用户点击主页上的{ "get_action" : "geturl", "eid" : "eidurl", "return_url" : "returnurl", "option_url" : "optionurl" } 按钮时,会检索此项。此按钮触发login请求,该请求检索结果并将JSON解析为上面的表单。然后,我在提交表单之前,从原始代码和表单本身的操作中更改表单的值。如下所示。

POST

$.post('/?c=controller&a=method', {'email' : $('input[name="email"]').val() }, function(data){ var result = $.parseJSON(data); $('#sform').change_action(result.get_action); $('input[name="eid"]').change_val(result.eid); $('input[name="returnURL"]').change_val(result.return_url); $('select[name="ieid"]').find('option:selected').change_val(result.option_url); $('#sform').submit(); }; change_val()定义如下:

change_action()

我之所以定义这些功能是因为最初我刚刚调用$.fn.change_val = function(v){ return $(this).val(v).trigger("change"); } $.fn.change_action = function(v){ return $(this).attr('action', v).trigger("change"); } 而且表单似乎根本没有更新。我读到在提交表单时使用jQuery更新表单时必须触发更改。

然而,即使在触发更改后,似乎HTML仍未更新(至少在Chrome中)并且表单未正确提交,因为没有任何值实际更改。

因此,我需要能够获取解析后的结果,更新表单中的值(使用特定的ID),然后提交表单以便它重新指向某个地方。有没有办法正确地做到这一点?

0 个答案:

没有答案