javascript - DirtyForms 不适用于输入隐藏字段
问题描述
我在表单中添加了dirtyForms,以检测输入字段之一的任何更改https://github.com/snikch/jquery.dirtyforms
HTML
<form>
<input type="text" id="post" name="post">
<input type="hidden" id="body" name="body">
<froala-editor input="body">
</froala-editor>
</form>
Javascript
$('document').ready(function() {
$('form').dirtyForms();
});
然而对于 input hidden 似乎它没有添加脏类,它只适用于input type="text"
. 关于如何解决这个问题的任何想法?
解决方案
因为当用户不是在字段中输入数据的人时,它没有意义。
你可以自己做
SO不允许编辑所以我在这里测试
$('form').toggleClass('mydirty', e.target.textContent !== "");
测试编辑器,它比输入字段更有意义
https://plungjan.name/SO/froala/
$('form').dirtyForms({
helpers: [{
isDirty: function($node, index) {
if ($node.is('form')) {
return $node.hasClass('mydirty');
}
}
}]
});
var editor = new FroalaEditor('#froala')
$(document).on("keyup", function(e) {
$('form').toggleClass('mydirty', e.target.textContent !== "");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.dirtyforms/2.0.0/jquery.dirtyforms.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/froala-editor@3.2.3/js/froala_editor.min.js"></script>
<form>
<input type="text" id="post" name="post">
<input type="hidden" id="body" name="body">
<div id="froala" input="body">
</div>
</form>
推荐阅读
- amazon-web-services - AWS CloudSearch 按唯一值过滤
- java - mapstruct:将字段名称映射到属性
- mongodb - replSetInitiate 仲裁检查失败,因为并非所有提议的集合成员都做出肯定响应
- c# - Bunifu 演员阵容无效
- selenium-chromedriver - 使用 Selenium 驱动程序的多个浏览器窗口句柄
- multithreading - 释放此互斥锁的正确方法是什么?
- java - 用于存储key-value-value等元素的集合
- azure - Sitecore 搜索(SOLR 和 AzureSearch),按类别分组的前 5 个结果
- php - php 在函数代码中?
- r - 使用 2 个列表为 selectInput 创建一个选项列表