fix(payment): 添加卡密页导入提示移至卡密数据上方并修正脱离表单后不显示
- 四条导入提示与「单密码模式」开关收拢到「卡密数据」行正上方:切换卡密类型/ 添加方式时,命中的那一条紧邻示例数据与输入框,便于对照填写。原先单密码模式 开关夹在两条提示之间、提示又落在自动生成字段之后的位置不再使用。 - evalDeps() 与 change 监听不再限定在 .aksrt-cardpass-form 子树内,改为全文档 查找 [data-dep]。提示块一旦被移出表单子树,限域查找会漏过它,其内联 display:none 无人清除,表现为「切换到导入卡密后提示不显示」。 - 契约测试同步收紧:断言必须为全文档选择器,并显式禁止回退为限域写法。
This commit is contained in:
@@ -135,7 +135,7 @@ function createForm() {
|
||||
readyState: 'loading',
|
||||
querySelectorAll(sel) {
|
||||
if (sel === '.aksrt-cardpass-form [name]') return inputs;
|
||||
if (sel === '.aksrt-cardpass-form [data-dep]') return rows.map((row) => row.el);
|
||||
if (sel === '[data-dep]') return rows.map((row) => row.el);
|
||||
return [];
|
||||
},
|
||||
addEventListener(type, fn) { (handlers[type] = handlers[type] || []).push(fn); },
|
||||
@@ -207,7 +207,9 @@ test('两种行渲染都接入服务端预隐藏,避免首帧铺开', () => {
|
||||
// foster-parent 到 <table> 之前)仍能被求值并保持隐藏。
|
||||
assert.match(page, /<td colspan="2"><div'\s*\.\s*\$dep_attr/, '提示块必须自带 data-dep');
|
||||
assert.match(page, /style="margin:6px 0;padding:6px 12px;'\s*\.\s*\$hidden/, '提示块必须自带初始隐藏状态');
|
||||
assert.match(script, /querySelectorAll\('\.aksrt-cardpass-form \[data-dep\]'\)/, '求值选择器必须同时覆盖行与提示块');
|
||||
// 求值范围不限域:提示块被解析器移出表格/表单子树后仍必须被求值。
|
||||
assert.match(script, /querySelectorAll\('\[data-dep\]'\)/, '求值必须全文档查找 data-dep');
|
||||
assert.doesNotMatch(script, /querySelectorAll\('\.aksrt-cardpass-form \[data-dep\]'\)/, '求值不得限域在表单内');
|
||||
});
|
||||
|
||||
test('行内脚本不再保留解析期的空操作求值(死代码)', () => {
|
||||
|
||||
Reference in New Issue
Block a user