Cakephp on更改选择表单上的事件(下拉列表)



我有一个带有选择输入的表单。我想在选择下拉列表时自动提交表单。

我的代码:

<?php echo $this->Form->create('Product', array('controller'=>'products', 'action'=>'shipping_area'));
    echo $this->Form->input('area', array('options' => array('1' => 'Within Malaysia', '2' => 'International'), 'empty' => 'choose area',
    'label' => 'Choose shipping area', 'onChange'=>'javascript:this.form.submit()'));
    //echo $this->Form->end('Save');
?>
I put 'onChange'=>'javascript:this.form.submit()', but it goes to http://localhost/cake/cake/products/shipping_area ( supposely http://localhost/cake/products/shipping_area )

我也尝试了'onChange'=>'this.form.submit()',但得到了同样的错误。

任何人都可以帮忙。

你可以向表单添加一个"id"属性,然后每次你在"select"元素中得到一个"onchange"事件时,你必须获取"id"值并将其传递给javascript函数"document.getElement('idValueHere')"并调用功能提交。更清楚的是,以下代码:

<?php 
# step 1: add an id attribute ('id' => 'anyFormName') to the array options
# step 2: add an onchange envent to the dropdown ('onChange'=>'document.getElementById("anyFormName").submit();')
echo $this->Form->create('Product', array('controller'=>'products', 'action'=>'shipping_area', 'id' => 'anyFormName'));
echo $this->Form->input('area', array('options' => array('1' => 'Within Malaysia', '2' => 'International'), 'empty' => 'choose area',
    'label' => 'Choose shipping area', 'onChange'=>'document.getElementById("anyFormName").submit();'));
//echo $this->Form->end('Save');?>

希望对您有所帮助。

echo $this->Form->create('Product', array(
    'url' => array(
        'controller'=>'products', 'action'=>'shipping_area'
    )
));

最新更新