1

最近 stakantin ( https://stackoverflow.com/users/1875610/stakantin ) 帮助我解决了一个关于使用以下代码更改标签文本的问题:

$label=$this->add('View_HtmlElement')->setElement('h4')->set('Test'); $f=$this->add('表格'); $f->addField('Checkbox','click')->js('click',$label->js()->text('hallo world'));

我正在尝试这样做(我不知道该怎么做):

我有一个标签“$label=$this->add('View_HtmlElement')->setElement('h4')->set('100');” 我有一些带有复选框的表单字段。每个复选框都有一个编号。

单击复选框以对该标签进行操作时是否有可能?

例子:

标签: 100

field1 100 复选框 field2 200 复选框

如果我单击 field1 的复选框,则标签值为 200(其原始值加上 field1 的 100),依此类推...

我不知道我是否很清楚购买感谢您的帮助。亚历杭德罗

4

1 回答 1

1

例子:

    $f = $this->add('Form');
    $l1  = $f->addField('Line','l1')->set(100);
    $cb1 = $f->addField('Checkbox','cb1','100');
    $l2  = $f->addField('Line','l2')->set(300);
    $cb2 = $f->addField('Checkbox','cb2','300');

    $cb1->js('change','
        if (this.checked) {
            $(this).parent().find("label")
                .text(parseInt(100) + parseInt('.$l1->js()->val().'));
        } else {
            $(this).parent().find("label").text(100);
        }
    ');

    $cb2->js('change','
        if (this.checked) {
            $(this).parent().find("label")
                .text(parseInt(300) + parseInt('.$l2->js()->val().'));
        } else {
            $(this).parent().find("label").text("300");
        }
    ');

但这不是添加javascript的好方法。根据我在 .js 文件中的示例创建 js 函数的方式要清晰得多。

于 2013-10-01T13:59:34.680 回答