Match-id-6f710b5df19f2be04f61b75b3de8f6776ec4d2d1

This commit is contained in:
* 2022-09-22 16:47:26 +08:00 committed by *
parent 2cddb7a6e5
commit e69a465590
2 changed files with 15 additions and 15 deletions

View File

@ -22,32 +22,32 @@ import {
} from './TextareaValueHandler';
// 获取元素除了被代理的值以外的属性
function getPropsWithoutValue(type: string, dom: HorizonDom, properties: Props) {
function getPropsWithoutValue(type: string, dom: HorizonDom, props: Props) {
switch (type) {
case 'input':
return getInputPropsWithoutValue(<HTMLInputElement>dom, properties);
return getInputPropsWithoutValue(<HTMLInputElement>dom, props);
case 'option':
return getOptionPropsWithoutValue(dom, properties);
return getOptionPropsWithoutValue(dom, props);
case 'select':
return getSelectPropsWithoutValue(<HorizonSelect>dom, properties);
return getSelectPropsWithoutValue(<HorizonSelect>dom, props);
case 'textarea':
return getTextareaPropsWithoutValue(<HTMLTextAreaElement>dom, properties);
return getTextareaPropsWithoutValue(<HTMLTextAreaElement>dom, props);
default:
return properties;
return props;
}
}
// 其它属性挂载完成后处理被代理值相关的属性
function setInitValue(type: string, dom: HorizonDom, properties: Props) {
function setInitValue(type: string, dom: HorizonDom, props: Props) {
switch (type) {
case 'input':
setInitInputValue(<HTMLInputElement>dom, properties);
setInitInputValue(<HTMLInputElement>dom, props);
break;
case 'select':
updateSelectValue(<HorizonSelect>dom, properties, true);
updateSelectValue(<HorizonSelect>dom, props, true);
break;
case 'textarea':
updateTextareaValue(<HTMLTextAreaElement>dom, properties, true);
updateTextareaValue(<HTMLTextAreaElement>dom, props, true);
break;
default:
break;
@ -55,16 +55,16 @@ function setInitValue(type: string, dom: HorizonDom, properties: Props) {
}
// 更新需要适配的属性
function updateValue(type: string, dom: HorizonDom, properties: Props) {
function updateValue(type: string, dom: HorizonDom, props: Props) {
switch (type) {
case 'input':
updateInputValue(<HTMLInputElement>dom, properties);
updateInputValue(<HTMLInputElement>dom, props);
break;
case 'select':
updateSelectValue(<HorizonSelect>dom, properties);
updateSelectValue(<HorizonSelect>dom, props);
break;
case 'textarea':
updateTextareaValue(<HTMLTextAreaElement>dom, properties);
updateTextareaValue(<HTMLTextAreaElement>dom, props);
break;
default:
break;

View File

@ -58,7 +58,7 @@ function controlValue(target: Element) {
function controlInputValue(inputDom: HTMLInputElement, props: Props) {
const { name, type } = props;
// 如果是 radio先更新相同 name 的 radio
// 如果是 radio找出同一form内name相同的Radio更新它们Handler的Value
if (type === 'radio' && name != null) {
const radioList = document.querySelectorAll<HTMLInputElement>(`input[type="radio"][name="${name}"]`);
for (let i = 0; i < radioList.length; i++) {