Я работаю над проектом Vue. Мне нужно сохранить переменные в десятичных числах, используя числа точек. например: если я автоматически использую 23,5, это должно быть сохранено как 23,5 в Chrome это работает хорошо, но Firefox и другие браузеры не меняют его на числа точек.
function school (ind){
this['School Name'] = "",
this['Subject 1'] = "56.6",
this['Subject 2'] = "",
this['Subject 3'] = ""
}
var Vue1 = new Vue({
el: '#app',
data: {
schoolinfo: []
},
methods: {
addSchool: function(){
this.add_School++;
var len = this.schoolinfo.length;
var newSchool = new school(this.add_School);
this.schoolinfo.push(newSchool);
}
}
})
function exportSchool() {
var school_to_export = { 'school Info': data_Vue.schoolinfo };
console.info( JSON.stringify(school_to_export));
}
function init() {
}<script src = "https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<body onload = "init();">
<div id='app'>
<div>
<button v-on:click = "addSchool(); "> Add new School</button>
<table v-if = "schoolinfo.length > 0">
<tr>
<td>School Name</td>
<td>Subject 1</td>
<td>Subject 2</td>
<td>Subject 3</td>
</tr>
<tr v-for='(school, index) in schoolinfo' >
<td> <input v-model = "school['School Name']"> </td>
<td> <input type = "number" v-model.number = "school['Subject 1']"> </td>
<td> <input type = "number" v-model.number = "school['Subject 2']"> </td>
<td> <input type = "number" v-model.number = "school['Subject 3']"> </td>
</tr>
</table>
<button onclick = "exportSchool()" >clicl to see in Console</button>
</body>Firefox и другие браузеры не меняют запятую на десятичную точку. Изменение Chrome с запятой на десятичную точку.





Как насчет использования v-model.number?
<input type = "number" v-model.number = "school['School Name']">
Вы можете найти больше информации о .number в здесь
Можете ли вы попробовать добавить type = "number" к вводу?
Я отредактировал код в своем посте. Пожалуйста, попробуйте это в Chrome и не беспокойтесь об ошибке Vue. Вы можете увидеть информацию о школе в консоли. В Firefox - если это десятичная запятая, в консоль не передаются никакие значения! Также включает рамку красного цвета, которую можно легко удалить.
Вы должны использовать точку (.) вместо запятой (,)
Да, но в Европе многие используют запятую. Chrome принимает запятую и сохраняет ее как десятичную точку. Можем ли мы использовать шаблон в Vue html (pattern = "[0-9]+([\,][0-9]+)?")
Это проблема Firefox stackoverflow.com/questions/17976393/…. Вам нужно обрабатывать пользовательский ввод вручную.
Спасибо за ответ. десятичные числа округляются. Например 34.3 сохраняет до 34, а 34.6 сохраняет до 35 как в Firefox, так и в Chrome. Хорошо. Но никаких округленных значений!