是否可以发布表单,同时使用javascript获取输入数据?

时间:2014-04-07 05:55:13

标签: javascript php jquery

假设我有一个表格

<form action="www.posturl.com" method="post" >    
    <input type="text" name="test" />    
    <input type="submit" />    
</form>

有没有我可以在发布表单时使用javascript获取输入字段'test'?如果是,有没有办法可以阻止它并且只能POST到该操作URL?

3 个答案:

答案 0 :(得分:0)

有人可以使用JavaScript获取数据。以下示例使用jQuery:

<script type="text/javascript">
    $(function() {
        $('form').on('submit', function() {
            var test = $(this).find('[name="test"]').val(); // grab value of the input named 'test'
            // do something with the data
        });
    });
</script>

如果有人控制了表单所在页面的内容,则无法阻止此操作。

您可以将表单作为iFrame提供给客户,以显示来自其他域的页面。然后,同源策略将阻止他们通过JavaScript访问表单。

答案 1 :(得分:0)

您可以使用AJAX -

发布表单
<form action="www.posturl.com" method="post" >
    <input name="test" />
    <input type="submit" />
</form>

<script>
$(function(){
    $("form").on(submit,function(){
        var form = $(this);
        var action = form.attr('action');
        var data = form.serialize();

        $.post(action,data)
        .done(function(response){
            if(response.success == TRUE)
            {
               // If successfully submitted
            }
            else
            {
               // If not
            }
        });
    });
});
</script>

答案 2 :(得分:0)

我不确定你为什么要这样做,

但你可以试试这个 -

您可以使用jQuery的unbind函数删除现有事件,例如:

if(user == 'admin')
{
    $('#myForm').unbind('submit');

//will remove all onsubmit events from #myForm. Then you can add a new event using normal jQuery:

`$('#myForm').submit(function(e)` { /* your logic here */ });

}

所以,你可以提供这样的逻辑:如果用户是你(而不是你的客户),那么这将取消绑定现有的提交事件,使用你的javascript函数添加一个新的提交事件,而你的客户只会使用之前的提交事件,它没有提取输入字段的javascript函数