gpt4 book ai didi

javascript - Yii 2 kartikdialog.prompt 输入类型textarea

转载 作者:行者123 更新时间:2023-12-01 01:31:40 25 4
gpt4 key购买 nike

我有一个按钮可以触发 kartikdialog.prompt,在其中输入文本。我需要对话框中的输入具有多行和换行功能(如文本区域)

如何将其从简单的文本输入更改为文本区域?

这是我的 JavaScript:

$("#bulk-email-button-invitations").on("click", function() {
var grid = $("#invitations");
var keys = grid.yiiGridView('getSelectedRows');

if (keys.length >= 1){
krajeeDialog.prompt({label:'Text emailu:', placeholder:'Zadejte text emailu'}, function (result) {
if (result) {
$(location).attr('href', '/educational-event-invitation/bulk-email?' + $.param({invitations: keys, text: result}));
} else {
krajeeDialog.alert('Text emailu nesmí být prázdný!');
}
});
}else{
krajeeDialog.alert("Nejprve vyberte studenty, kterým chcete poslat email!")
}
});

我发现如果未定义类型(与我的情况下的标签和占位符不同),它默认为“文本”。但我无法使对话框呈现除简单的单行文本输入之外的任何类型。

最佳答案

显然,扩展程序不支持这一点。

原因:

原因是在定义了 KrajeeDialog.prototypedialog.js 中,函数 bdPrompt 负责处理要创建的提示对话框,它会将默认字段类型创建为 input,而不是决定传递给 KrajeeDialog.prompt() 的任何选项或参数,尽管您可以传递名称type的参数,例如

krajeeDialog.prompt({
label:'Text emailu:',
placeholder:'Zadejte text emailu',
type:'password'
},function(){})

但这并不能决定元素是input还是textarea类型,这个参数type作为属性传递输入元素的。请参阅下面的代码块以了解我解释第三行将始终创建输入类型字段的原因。

文件yii2-dialog/assets/js/dialog.js第110行

if (typeof input === "object") {
$inputDiv = $(document.createElement('div'));
$input = $(document.createElement('input'));
if (input['name'] === undefined) {
$input.attr('name', 'krajee-dialog-prompt');
}
if (input['type'] === undefined) {
$input.attr('type', 'text');
}
if (input['class'] === undefined) {
$input.addClass('form-control');
}
$.each(input, function(key, val) {
if (key !== 'label') {
$input.attr(key, val);
}
});
if (input.label !== undefined) {
msg = '<label for="' + $input.attr('name') + '" class="control-label">' + input.label + '</label>';
}
$inputDiv.append($input);
msg += $inputDiv.html();
$input.remove();
$inputDiv.remove();
} else {
msg = input;
}

因此,如果您想以这种方式工作,您可能需要根据您的需要重写 javascript 函数。

关于javascript - Yii 2 kartikdialog.prompt 输入类型textarea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53227027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com