【问题标题】:jQuery buttonset and CakePHP radio set with hidden value带有隐藏值的 jQuery 按钮集和 CakePHP 单选集
【发布时间】:2012-11-01 03:43:36
【问题描述】:

我正在使用 CakePHP 2.2.3 生成一个无线电集,然后我将一个 jQuery 按钮集应用到该无线电集。

CakePHP sn-p:

echo $this->Form->input('contact_address_type', array(
    'type' => 'radio',
    'legend' => false,
    'options' => array('domestic' => 'Domestic', 'po_box' => 'Domestic PO Box', 'foreign' => 'Foreign'),
    'div' => array('class' => 'contact address_type')
));

jQuery UI sn-p:

$('.contact.address_type').buttonset();

生成 HTML 时,有一个隐藏字段与收音机集同名。这样做是为了在提交表单时,即使未选择无线电集,我仍然会在我的 request->data 中获得一个值(尽管是空白)。

但是,jQuery UI 按钮集代码在选择其中一个选项时不喜欢这样,因为它希望表单中与所选单选选项名称相同的所有元素都具有与之关联的按钮小部件。此时,associate jQuery UI ticket 是不会修复的。

我不愿意向 CakePHP 提交票证,因为有一个同名的隐藏字段来默认为未选择的收音机设置一个值是一种合法的做法。

jsFiddle 显示了一个示例。选择按钮时,您需要打开 javascript 控制台才能查看生成的错误。

【问题讨论】:

    标签: jquery-ui cakephp


    【解决方案1】:

    一个可能的答案是生成一个没有标签的虚假单选选项。

    这将阻止它包含在渲染的按钮集中,但它仍然会获得一个附加到它的按钮对象。您还需要将单选默认设置为选中,这样如果没有选择其他按钮,则会提交该默认值。

    echo $this->Form->input('contact_address_type', array(
        'type' => 'radio',
        'legend' => false,
        'options' => array('domestic' => 'Domestic', 'po_box' => 'Domestic PO Box', 'foreign' => 'Foreign'),
        'value' => false,
        'before' => $this->Form->radio('contact_address_type', array('' => ''), array('legend' => false, 'checked' => 'checked', 'value' => false, 'label' => false)),
        'div' => array('class' => 'contact address_type')
    ));
    

    另一个选项是强制用户进行默认选择,因此您知道将选择一个选项。

    echo $this->Form->input('contact_address_type', array(
        'type' => 'radio',
        'legend' => false,
        'options' => array('domestic' => 'Domestic', 'po_box' => 'Domestic PO Box', 'foreign' => 'Foreign'),
        'value' => 'domestic',
        'div' => array('class' => 'contact address_type')
    ));
    

    但我想看看是否有更好的选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 2013-05-27
      • 1970-01-01
      • 2013-01-20
      • 1970-01-01
      相关资源
      最近更新 更多