Я пытаюсь интегрировать SemanticUI с Vue, и у меня есть компонент входа с формой в нем.Форма submit не предотвращается при попытке интегрировать VueJS с SemanticUI
Я добавил v-on:submit.prevent="onSubmit"
к форме, но когда я нажимаю кнопку ввода в одном из полей формы, форма все еще отправляется, и мой метод, т. Е. Никогда не вызывался.
В основном, что я пытаюсь сделать, это реплицировать событие on("submit"
из jQuery.
Любая идея, в чем проблема?
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 }
});
и 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>
Не могли бы вы показать код, который вы используете для отправки формы? Кажется, вы не используете стандартный вход 'submit'. –
Сообщение отправляется нажатием Enter во время одного из этих трех входов. При стандартном jQuery '$ (document) .on (" submit "," form ", function (e) {});' работает. – daniels
Вы можете изменить свою кнопку входа на вход и сохранить стиль: ''? –