我只写一个主天线的示例,经过验证可以,你就续写下去就可以: const RtkForm = reactive({ mainTx: "", x: "", y: "", z: "", //... }) function isIntegerOrDecimal(str) { let num = parseFloat(str); return Number.isInteger(num) || Number.isFinite(num); } const checkNumber = (rule, value, callback) => { if (!RtkForm.x || !isIntegerOrDecimal(RtkForm.x)) { callback(new Error('第一个框请输入整数或小数')); } else if (!RtkForm.y || !isIntegerOrDecimal(RtkForm.x)) { callback(new Error('第二个框请输入整数或小数')); } else if (!RtkForm.z || !isIntegerOrDecimal(RtkForm.z)) { callback(new Error('第三个框请输入整数或小数')); } else { callback(); } } 更新: 我发现这样写更简单粗暴,只不过没提示了 (RtkForm.x = v.replace(/[^\d.]/g, ''))" v-model="RtkForm.x" /> (RtkForm.y = v.replace(/[^\d.]/g, ''))" v-model="RtkForm.y" /> (RtkForm.z = v.replace(/[^\d.]/g, ''))" v-model="RtkForm.z" />