J'essaie d'intégrer SemanticUI avec Vue et j'ai un composant Login avec un formulaire dedans.Soumettre le formulaire n'est pas empêché en essayant d'intégrer VueJS avec SemanticUI
J'ai ajouté v-on:submit.prevent="onSubmit"
au formulaire mais lorsque j'appuie sur la touche Entrée dans l'un des champs du formulaire, le formulaire est toujours envoyé et ma méthode n'est jamais appelée.
Fondamentalement, ce que j'essaie de faire est de répliquer l'événement on("submit"
à partir de jQuery.
Une idée quel est le problème?
main.js
import Vue from "vue";
import VueRouter from "vue-router";
import App from "./App";
Vue.use(VueRouter);
new Vue({
el : "#app",
template : "<App/>",
components: { App }
});
et Login.vue
<template>
<div class="ui middle aligned center aligned grid">
<div class="column">
<h2 class="ui teal header">
Login
</h2>
<form class="ui large form login" v-on:submit.prevent="onSubmit">
<div class="ui stacked segment">
<div class="field">
<div class="ui left icon input">
<i class="cloud icon"></i>
<input type="text" name="hostname" placeholder="Hostname" value="">
</div>
</div>
<div class="field">
<div class="ui left icon input">
<i class="user icon"></i>
<input type="text" name="username" placeholder="Username" value="">
</div>
</div>
<div class="field">
<div class="ui left icon input">
<i class="lock icon"></i>
<input type="password" name="password" placeholder="Password" value="">
</div>
</div>
<div class="ui fluid large teal submit button">Login</div>
</div>
</form>
</div>
</div>
</template>
<script>
export default {
name: "login",
mounted: function() {
this.$nextTick(function() {
jQuery(this.$el).find("form").form({
fields: {
hostname: {
identifier: "hostname",
rules : [{
type : "empty",
prompt: "Please enter the instance hostname"
}]
},
username: {
identifier: "username",
rules : [{
type : "empty",
prompt: "Please enter your username"
}]
},
password: {
identifier: "password",
rules : [{
type : "empty",
prompt: "Please enter your password"
}]
}
}
});
});
},
methods: {
onSubmit: function(e) {
alert("ok");
}
}
};
</script>
Pourriez-vous montrer le code que vous utilisez pour soumettre le formulaire? Vous ne semblez pas utiliser une entrée 'submit' standard. –
Le fichier FROM est envoyé en appuyant sur Entrée lors de l'une de ces trois entrées. Avec jQuery standard, un '$ (document) .on (" submit "," form ", function (e) {});' fonctionne. – daniels
Êtes-vous en mesure de changer votre bouton de connexion à une entrée et garder le style: ''? –