| 2990 | * @description 处理填空 |
| 2991 | */ |
| 2992 | const handleBlankInput = (answers) => { |
| 2993 | // 所有填空 |
| 2994 | const blanks = $$('.blank'); |
| 2995 | // 答案存在 |
| 2996 | if (blanks.length && answers.length) { |
| 2997 | // 填空数量和答案数量一致 |
| 2998 | if (answers.length === blanks.length) { |
| 2999 | return answers.every((answer, i) => { |
| 3000 | // 答案存在 |
| 3001 | if (answer && answer.length) { |
| 3002 | // 输入事件 |
| 3003 | const inputEvent = new Event('input', { |
| 3004 | bubbles: true, |
| 3005 | }); |
| 3006 | // 设置答案 |
| 3007 | blanks[i].setAttribute('value', answer); |
| 3008 | // 触发输入input |
| 3009 | blanks[i].dispatchEvent(inputEvent); |
| 3010 | return true; |
| 3011 | } |
| 3012 | return false; |
| 3013 | }); |
| 3014 | } |
| 3015 | // 填空数量为1和提示数量大于1 |
| 3016 | if (blanks.length === 1 && answers.length > 1) { |
| 3017 | // 直接将所有答案整合填进去 |
| 3018 | const answer = answers.join(''); |
| 3019 | // 答案存在 |
| 3020 | if (answer && answer.length) { |
| 3021 | // 输入事件 |
| 3022 | const inputEvent = new Event('input', { |
| 3023 | bubbles: true, |
| 3024 | }); |
| 3025 | // 设置答案 |
| 3026 | blanks[0].setAttribute('value', answer); |
| 3027 | // 触发输入input |
| 3028 | blanks[0].dispatchEvent(inputEvent); |
| 3029 | return true; |
| 3030 | } |
| 3031 | } |
| 3032 | } |
| 3033 | return false; |
| 3034 | }; |
| 3035 | /** |
| 3036 | * @description 处理填空随机 |
| 3037 | */ |