Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以发布表单,同时使用javascript获取输入数据?_Javascript_Php_Jquery - Fatal编程技术网

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

是否可以发布表单,同时使用javascript获取输入数据?,javascript,php,jquery,Javascript,Php,Jquery,假设我有一张表格 <form action="www.posturl.com" method="post" > <input type="text" name="test" /> <input type="submit" /> </form> 在发布表单时,是否有办法使用javascript获取输入字段“test”?如果有,是否有办法阻止它,并且只能发布到该操作url?有人可以使用javascript获

假设我有一张表格

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


在发布表单时,是否有办法使用javascript获取输入字段“test”?如果有,是否有办法阻止它,并且只能发布到该操作url?

有人可以使用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>

$(函数(){
$('form')。在('submit',function()上{
var test=$(this).find('[name=“test”]').val();//获取名为“test”的输入的值
//对数据做点什么
});
});
如果有人可以控制表单所在页面的内容,则无法防止这种情况发生


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

您可以使用
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>

$(函数(){
$(“表格”)。在(提交,函数()上{
变量形式=$(此);
var action=form.attr(“action”);
var data=form.serialize();
$.post(操作、数据)
.完成(功能(响应){
if(response.success==TRUE)
{
//如果成功提交
}
其他的
{
//如果不是
}
});
});
});

我不知道你为什么要这样做

但是你可以试试这个-

可以使用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函数

您可以调用表单提交事件并使用jquery获取表单值/js@RakeshSharma有没有什么办法可以阻止别人拿到表格数据,并且只发布到操作url?为什么?你为什么要那样?表单仅发布到操作URL。用户如何获取数据?我不明白你的意思,请澄清这是关于我的客户。我不希望我的客户使用提交操作获得信用卡的CVV,他们应该将其发布到我提供的url。我给他们一个javascript,他们应该在他们的页面中使用,然后只有他们可以使用我的服务。但我不希望我的客户存储信用卡的CVV,而是把它贴到我的网址上