Esta es una pregunta de seguimiento de la pregunta que hice antes:
Llene automáticamente la segunda entrada después de que se complete el primer valor de entrada en función de la condición de rango if/else. A continuación se muestra la respuesta proporcionada por @Muge, que sigo para resolverla.
https://stackoverflow.com/a/70433191/16136444
Pero encontré un problema, la segunda entrada sigue mostrando el mismo valor de entrada aunque el valor en la primera entrada se inserta de manera diferente cada vez. Sigue dándome el valor de "G1" sin importar el valor numérico que puse en la primera entrada.
¿Qué podría estar mal con mi código?
plantilla vue
<v-col cols="12" sm="6" md="6"> <label style="font-size: 1.5rem;">Estimated Contract Value (RM)</label> <v-text-field v-model="editedItem.EstimatedContractValue" outlined @blur="updateWorksGrade" ></v-text-field> </v-col> <v-col cols="12" sm="6" md="6"> <label style="font-size: 1.5rem;">Works Grade</label> <v-text-field v-model="editedItem.WorksGrade" outlined readonly :items="worksgrade" ></v-text-field> </v-col>guión vue
data: () => ({ editedItem: { EstimatedContractValue: "", WorksGrade: "", }, worksgrade: [], }), methods: { updateWorksGrade() { this.worksgrade = []; let x = []; if ( x < 200000) { this.editedItem.WorksGrade = "G1"; } else if ( x > 200000 && x <= 500000) { this.editedItem.WorksGrade = "G2"; } else if ( x > 500000 && x <= 1000000) { this.editedItem.WorksGrade = "G3"; } else if ( x > 1000000 && x <= 3000000) { this.editedItem.WorksGrade = "G4"; } else { alert("oi lebih dah ni!") } }, },Encontré el problema. Todavía quiero publicarlo en caso de que alguien tenga el mismo problema conmigo en el futuro.
Cambié let x = []; let x = this.editedItem.EstimatedContractValue .
Ahora, cualquiera que sea el valor numérico que coloque en la primera entrada, la segunda entrada solo mostrará el valor en la condición que establezca.
data: () => ({ editedItem: { EstimatedContractValue: "", WorksGrade: "", }, worksgrade: [], }), methods: { updateWorksGrade() { this.worksgrade = []; let x = this.editedItem.EstimatedContractValue; if ( x < 200000) { this.editedItem.WorksGrade = "G1"; } else if ( x > 200000 && x <= 500000) { this.editedItem.WorksGrade = "G2"; } else if ( x > 500000 && x <= 1000000) { this.editedItem.WorksGrade = "G3"; } else if ( x > 1000000 && x <= 3000000) { this.editedItem.WorksGrade = "G4"; } else { alert("oi lebih dah ni!") } }, },El valor de x siempre es menor que 200000, por lo que cada vez que se llama a la función, el valor de x es el mismo