Javascript 当';document.formname.submit()';用于提交表单
我正在尝试使用javascript提交一个带有链接(代替表单按钮)的html表单。 这是我的密码Javascript 当';document.formname.submit()';用于提交表单,javascript,php,jquery,html,codeigniter,Javascript,Php,Jquery,Html,Codeigniter,我正在尝试使用javascript提交一个带有链接(代替表单按钮)的html表单。 这是我的密码 <?php echo form_open('controller/method', 'id=formid', 'name=formname'); echo form_hidden('uniqval', 'somevalue'); //here some value is the actual string that //n
<?php
echo form_open('controller/method', 'id=formid', 'name=formname');
echo form_hidden('uniqval', 'somevalue'); //here some value is the actual string that
//needs to be passed to the controller's function
?>
<a href="link/controller/method" onclick="handler();">Submit</a>
<?php echo form_close(); ?>
你应该形成_close()是一回事;然后将“控制器/方法”更改为实际的控制器和方法名称
由于您的锚标记不是真正的锚,href=“#”您的代码(在php、html和JS中)存在一些问题
PHP:
- 您必须使用
表单关闭()关闭表单
form\u close()
接受属性作为数组格式,这就是为什么表单名称丢失,javascript无法找到要提交的表单的原因
<?php
echo form_open('controller/method', array('id'=>'formid', 'name'=>'formname'));
echo form_hidden('hidden', 'somevalue');
echo form_close();
?>
Javascript:
- 无需通过javascript传递隐藏值。所以,我去掉了那条线
<script type="text/javascript">
function handler()
{
document.formname.submit();
}
</script>
函数处理程序()
{
document.formname.submit();
}
现在表单提交将起作用,您可以使用$this->input->post(“somevalue”)
捕获值
希望这有帮助:)谢谢。我的代码中有一个表单_close()。关于controller/method,我有一个形式为_open()的实际controller函数,对于href,我给出了完整的链接,如href=“www.example.com/controller/function”,它不能与href=“#”一起使用。无论如何,它调用了正确的函数。但唯一的问题是隐藏的表单数据没有传递给控制器方法;在IJas上调试psuedo代码版本非常困难。我试过这个,但不起作用。我想我已经很接近了。使用href=“javascript:void(0)”,它只是进入一个空白页面,它没有调用正确的方法,除非我给出href的完整url。我已经在帖子中更新了我的代码。请你再看一看。检查这行echo form\u open('controller/method','id=formid','name=formname')代码>,这是错误的。检查我的线路。它应该类似于echo form_open('controller/method',array('id'=>'formid','name'=>'formname')代码>应该在数组中传递表单属性。如果没有它,javascript将无法找到要提交的表单。我在答覆中已提及这点。同时将href
保留为我的。否则它会将您重定向到您提供的url,不会提交表单。希望我说清楚了,谢谢。它起作用了。但是,当我这样做的时候,它会在一个奇特的框弹出窗口中打开页面,这就是为什么我使用一个链接来提交而不是表单提交(),它在我纠正错误之前在一个奇特的框中打开,你指出。如果你和其他插件一起使用,请保留链接。默认情况下,插件应该停止重定向。
<a href="javascript:void(0)" onclick="handler();">Submit</a>
<script type="text/javascript">
function handler()
{
document.formname.submit();
}
</script>