【问题标题】:Trying to disable submit button when there is zero input当输入为零时尝试禁用提交按钮
【发布时间】:2022-02-10 21:50:04
【问题描述】:

我只是一个初学者。当用户未输入零件号时,我正在尝试使用 typescript 和 html 禁用提交按钮。我在尝试这样做时遇到了一些问题,

 "Cannot find name 'partNumber'". 

如果有任何建议可以幸免,将不胜感激。这是与此相关的所有代码......

<div>
    <button id="submitButton"
        :class="{ disabled:partNumber == -1 }"<--error here-->
        :disabled="partNumber == -1" <--and here-->
        @click="submitItem"
    >
        <span>Submit</span>
        <i class="fas fa-send"></i>
    </button>
</div>

这里是 typscript.js

 mounted() {
    for (let element of this.partStore.partEntries as PartDefinition[]) {
      if (element.id == parseInt(this.$route.params.id.toString())) {
        this.localPartEntry.partNumber = element.partNumber;
        this.localPartEntry.variant = element.variant;
        this.localPartEntry.revision = element.revision;
        this.localPartEntry.description = element.description;
        this.localPartEntry.supplier = element.supplier;
        this.localPartEntry.previewImagePath = element.previewImagePath;
        this.localPartEntry.previewImageDateTime = element.previewImageDateTime;
        this.localPartEntry.obsolete = element.obsolete;
        this.localPartEntry.internalOnly = element.internalOnly;
        break;
      }
    }
  },

【问题讨论】:

    标签: html typescript bootstrap-4


    【解决方案1】:

    根据您的脚本,您的 partNumber 存储在 this.localPartEntry.partNumber 中。

    所以禁用条件应该是:disabled="localPartEntry.partNumber == -1" 而不是:disabled="partNumber == -1"

    所以模板将是

    <div>
        <button id="submitButton"
            :class="{ disabled: localPartEntry.partNumber == -1 }""
            :disabled="localPartEntry.partNumber == -1"
            @click="submitItem"
        >
            <span>Submit</span>
            <i class="fas fa-send"></i>
        </button>
    </div>
    

    【讨论】:

    • 感谢您的回复,我想我应该补充一下,我确实尝试过这个,但我收到了这个错误,“这个条件总是返回 false,因为类型字符串和数字没有重叠”我确实将部分编号设置为字符串,但我不知道当字符串等于零时该说什么
    • 另外,当我将 localpartentry.partnumber 设置为 null 时,提交按钮仍然没有被禁用
    • 去掉 if 条件中的 parseInt 并检查尝试
    • 我试过了,但我认为因为我有字符串数字和布尔值,我需要 parseInt 因为我收到另一个错误说“这个条件将始终返回 'false',因为类型 'number | undefined'和“字符串”没有重叠。
    • 检查 PartDefinition 的定义。检查我想要的类型。路由参数将始终是字符串。所以检查我想要的类型并进行比较
    猜你喜欢
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多