Yii2: Kartik/PopoverX 绑定到自定义按钮功能
Yii2: Kartik/PopoverX binding to custom button function
我在每个字段上使用 yii2 + kartik gridview + popoverx
,想要制作一个自定义按钮(例如作为标签),当点击它时文本区域会填充一些评论,例如 仅以折扣价购买
我可以在哪里放置该代码(按钮的),在哪个文件中,或者可能来自 gridview 中的 Kartik 弹出窗口的配置
<span onclick="placeDiscText()"
class="label label-info pull-left"
style="margin-left: 6px; margin-top: 3px; cursor:pointer;">
Buy only at discount.
</span>
主要问题是我应该在 JS 的 placeDiscText() 函数中放置什么...
我觉得差不多
$(this).parent()
.find('div.popover-body.popover-content > div.kv-editable-content > form.kv-editable-form > div.kv-editable-parent.form-group > textarea.form-control.kv-editable-input')
.val('Buy only at discount');
但是没用,我刚学JS,可能是傻代码请不要笑)
没有具体说明这个应该是span to click,可能有一个link,一个按钮什么的,主要是实现这样一个功能。
虽然您还没有为您正在使用的 Popover 扩展添加代码,因此我可以建议确切的代码,但据我所知,您想将自定义按钮添加到 popover 模式的左页脚部分,以及您需要使用 footer
选项。您可以为要呈现的 HTML 提供字符串,仅此而已。您已经定义了 2 个按钮,它们已经在页脚部分中,因此在该选项的开头添加以下字符串
'<div class="pull-left">'.Html::button('Buy', ['class'=>'btn btn-sm btn-info']).'</div>'
您的 Popover 的完整代码应如下所示。
<?php
echo \kartik\popover\PopoverX::widget([
'header' => 'Hello world',
'size'=> \kartik\popover\PopoverX::SIZE_LARGE,
'placement' => \kartik\popover\PopoverX::ALIGN_RIGHT,
'content' => Html::textarea('message','Buy only at discount',['id'=>'description']) ,
'footer' => '<div class="pull-left">'.Html::button('Buy', ['class'=>'btn btn-sm btn-info']).'</div>'.Html::button('Cancel', ['class'=>'btn btn-sm btn-danger']).Html::button('Download', ['class'=>'btn btn-sm btn-primary']),
'toggleButton' => ['label'=>'Right', 'class'=>'btn btn-default'],
]);
?>
编辑
当您尝试将点击绑定到模态按钮内的按钮,以便它插入特定文本时说 "Buy only at discount"。如果您查看 PopOverX 的 documentation
页面,有一个登录按钮的示例,它以模式 window 打开登录表单,当点击提交时提交表单,点击提交是 javascript
基于并通过您的检查员查看源代码,您将看到
是内联onclick
属性用于运行javascript
,详情可以看advanced HTML content (forms) with popover footer
部分在文档页面上,所以你需要做的是像下面这样添加
'<div class="pull-left">'.
Html::button('Buy', [
'class'=>'btn btn-sm btn-info',
'onclick'=>'$("#description").val("Buy only at discount")'
])
.'</div>'
所以你的 PopoverX 的完整代码看起来像
<?php
echo \kartik\popover\PopoverX::widget([
'header' => 'Hello world',
'size'=> \kartik\popover\PopoverX::SIZE_LARGE,
'placement' => \kartik\popover\PopoverX::ALIGN_RIGHT,
'content' => Html::textarea('message','Buy only at discount',['id'=>'description']) ,
'footer' => '<div class="pull-left">'.
Html::button('Buy', [
'class'=>'btn btn-sm btn-info',
'onclick'=>'$("#description").val("Buy only at discount")'
])
.'</div>'.Html::button('Cancel', ['class'=>'btn btn-sm btn-danger']).Html::button('Download', ['class'=>'btn btn-sm btn-primary']),
'toggleButton' => ['label'=>'Right', 'class'=>'btn btn-default'],
]);
?>
我在每个字段上使用 yii2 + kartik gridview + popoverx
,想要制作一个自定义按钮(例如作为标签),当点击它时文本区域会填充一些评论,例如 仅以折扣价购买
我可以在哪里放置该代码(按钮的),在哪个文件中,或者可能来自 gridview 中的 Kartik 弹出窗口的配置
<span onclick="placeDiscText()"
class="label label-info pull-left"
style="margin-left: 6px; margin-top: 3px; cursor:pointer;">
Buy only at discount.
</span>
主要问题是我应该在 JS 的 placeDiscText() 函数中放置什么...
我觉得差不多
$(this).parent()
.find('div.popover-body.popover-content > div.kv-editable-content > form.kv-editable-form > div.kv-editable-parent.form-group > textarea.form-control.kv-editable-input')
.val('Buy only at discount');
但是没用,我刚学JS,可能是傻代码请不要笑)
没有具体说明这个应该是span to click,可能有一个link,一个按钮什么的,主要是实现这样一个功能。
虽然您还没有为您正在使用的 Popover 扩展添加代码,因此我可以建议确切的代码,但据我所知,您想将自定义按钮添加到 popover 模式的左页脚部分,以及您需要使用 footer
选项。您可以为要呈现的 HTML 提供字符串,仅此而已。您已经定义了 2 个按钮,它们已经在页脚部分中,因此在该选项的开头添加以下字符串
'<div class="pull-left">'.Html::button('Buy', ['class'=>'btn btn-sm btn-info']).'</div>'
您的 Popover 的完整代码应如下所示。
<?php
echo \kartik\popover\PopoverX::widget([
'header' => 'Hello world',
'size'=> \kartik\popover\PopoverX::SIZE_LARGE,
'placement' => \kartik\popover\PopoverX::ALIGN_RIGHT,
'content' => Html::textarea('message','Buy only at discount',['id'=>'description']) ,
'footer' => '<div class="pull-left">'.Html::button('Buy', ['class'=>'btn btn-sm btn-info']).'</div>'.Html::button('Cancel', ['class'=>'btn btn-sm btn-danger']).Html::button('Download', ['class'=>'btn btn-sm btn-primary']),
'toggleButton' => ['label'=>'Right', 'class'=>'btn btn-default'],
]);
?>
编辑
当您尝试将点击绑定到模态按钮内的按钮,以便它插入特定文本时说 "Buy only at discount"。如果您查看 PopOverX 的 documentation
页面,有一个登录按钮的示例,它以模式 window 打开登录表单,当点击提交时提交表单,点击提交是 javascript
基于并通过您的检查员查看源代码,您将看到
是内联onclick
属性用于运行javascript
,详情可以看advanced HTML content (forms) with popover footer
部分在文档页面上,所以你需要做的是像下面这样添加
'<div class="pull-left">'.
Html::button('Buy', [
'class'=>'btn btn-sm btn-info',
'onclick'=>'$("#description").val("Buy only at discount")'
])
.'</div>'
所以你的 PopoverX 的完整代码看起来像
<?php
echo \kartik\popover\PopoverX::widget([
'header' => 'Hello world',
'size'=> \kartik\popover\PopoverX::SIZE_LARGE,
'placement' => \kartik\popover\PopoverX::ALIGN_RIGHT,
'content' => Html::textarea('message','Buy only at discount',['id'=>'description']) ,
'footer' => '<div class="pull-left">'.
Html::button('Buy', [
'class'=>'btn btn-sm btn-info',
'onclick'=>'$("#description").val("Buy only at discount")'
])
.'</div>'.Html::button('Cancel', ['class'=>'btn btn-sm btn-danger']).Html::button('Download', ['class'=>'btn btn-sm btn-primary']),
'toggleButton' => ['label'=>'Right', 'class'=>'btn btn-default'],
]);
?>