修改 yii.activeForm 是个好主意吗.js如果不是,另一种方法是什么
Is it a good idea to modify yii.activeForm.js if not what is the alternative way?
yii.activeForm.js 帮助客户端验证并允许或拒绝表单提交。点击时,活动表单会自动调用 submitForm: function()。
现在,我想在验证过程中将活动表单按钮文本更改为"正在处理",并在成功验证后禁用该按钮以防止双击。
我稍微修改了(手动包含 4 行)yii.activeForm.js 文件,它以我需要的方式运行良好。
submitForm: function () {
var oldtext= $('#smartbtn').text(); // manually included
$('#smartbtn').text('Processing...'); // manually included
var $form = $(this),
data = $form.data('yiiActiveForm');
if (data.validated) {
// Second submit's call (from validate/updateInputs)
data.submitting = false;
var event = $.Event(events.beforeSubmit);
$form.trigger(event);
if (event.result === false) {
data.validated = false;
submitFinalize($form);
return false;
}
updateHiddenButton($form);
$('#smartbtn').attr('disabled', 'disabled');// manually included
return true; // continue submitting the form since validation passes
} else {
$('#smartbtn').text(oldtext); // manually included
// First submit's call (from yii.js/handleAction) - execute validating
setSubmitFinalizeDefer($form);
if (data.settings.timer !== undefined) {
clearTimeout(data.settings.timer);
}
data.submitting = true;
methods.validate.call($form);
return false;
}
},
// active form
<?= Html::submitButton($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary'
,'id'=>'smartbtn']) ?>
但是我觉得修改作曲家生成的文件不是一个好习惯。
修改 yii.activeForm .js 可以吗?如果不是,我如何在不接触 yii.activeForm 的情况下实现相同的.js.?
我还注意到 web/asset 目录有一些随机命名的子目录,并且在两个项目(安装)上并不相同。
例如:web/assets/e67bec0b/yii.activeForm.js
是出于某种安全目的吗?
谢谢。
您可以使用 yiiActiveForm 的event
轻松强制更改。例如,在您的情况下,您可以执行以下操作:
$(document).on({
beforeValidate: function (event, messages, deferreds) {
// Disable button or change text with find child of event variable.
},
afterValidate: function (event, messages, errorAttributes) {
// Restore texts...
}
});
相关文章:
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- jQuery:使用substr()的另一种方法
- 另一种显示和隐藏按钮的方式
- 单击()的另一种方式
- 在javascript中使用覆盖变量是不是一种糟糕的做法
- 解析一个复杂的JavaScript表达式,将其改写为另一种格式
- 修改 yii.activeForm 是个好主意吗.js如果不是,另一种方法是什么
- 以两种不同的方式编写函数:一种方式会导致 TypeError,另一种方式不会.为什么
- 为什么在Lightswitch中堆叠承诺的一种方法有效,而另一种方法则不起作用
- Don'我不明白为什么这个JavaScript函数可以用一种方法调用,而不能用另一种方法
- Javascript-目标DOM在一种情况下工作,而不是在另一种情况
- 在IE中获得插入符号位置在一种情况下工作,在另一种情况下不工作
- Jquery动画以一种方式工作,而不是另一种方式
- 为什么变量在一种情况下用单引号发送,而在另一种情况下不加引号
- Scala到JS的加密不起作用,但另一种方式工作得很好
- 警报框以一种方式工作,而不是以另一种方式
- 为什么相同的代码在另一种形式下可以工作而不能工作
- jQuery-如果不创建元素'不存在——一种更短的方式
- 我想在母版页上有一个西班牙语/英语链接,它会带你到另一种语言的当前页面,而不是'home'页
- Javascript 正则表达式:为什么使用一种语法进行分组,而不是另一种语法