API Komposisi Vue 3 - lumpuhkan butang hantar borang sehingga semua syarat dipenuhi
P粉360266095
P粉360266095 2023-11-13 09:41:53
0
3
1096

Saya ingin melumpuhkan butang hantar borang sehingga semua medan input diisi dan tiada ralat.

<button
  :disabled="disabled"
  type="submit"
  value="Submit"
  >
  Suggest
</button>

let disabled = ref(true);
let error = ref(false);

nextTick(() => {
  let inputs = Array.from(document.getElementsByClassName("form__input"));
  if (!error.value) {
    inputs.forEach((input) => {
      if (input.value === "") {
        disabled.value = true;
      } else {
        disabled.value = false;
      }
    });
  }
})

Butang dilumpuhkan secara lalai, tetapi ia tidak akan "mendayakan" dirinya apabila syarat yang telah dinyatakan dipenuhi.

Setakat ini saya menggunakan cangkuk kitar hayat berbantu nextTick() yang jelas tidak membantu saya dalam kes ini.

Keadaan "dilumpuhkan" akan dikemas kini dalam konsol, tetapi bukan pada DOM.

Bagaimana saya boleh menyelesaikan masalah ini?

Sola

P粉360266095
P粉360266095

membalas semua(3)
P粉180844619

Mungkin anda perlu menggunakan v-modelcompulated@input untuk mendengar acara dan menukar keadaan butang dilumpuhkan.

P粉828463673

Penyelesaian paling mudah ialah menggunakan nilai 计算 untuk menetapkan keadaan lumpuh butang - berdasarkan nilai input - jika ada yang kosong, butang itu dinyahdayakan

Ini adalah contoh asas

const { ref, createApp, computed } = Vue;
createApp({
    setup() {
        const input1 = ref("");
        const input2 = ref("");
        const input3 = ref("");
        // disabled is true if ANY input is empty string
        const disabled = computed(() => !input1.value || !input2.value || !input3.value);
        const clicked = () => console.log('clicked');
        return { input1, input2, input3, disabled, clicked };
    }
}).mount('#app');
sssccc
Input 1:
Input 2:
Input 3:
尊渡假赌尊渡假赌尊渡假赌

. . . . Ujian

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan