НБ
Наталья Белоногова

JQuery собираю калькулятор

$(".ket").click(function(){
let inp = document.getElementById("result").value.indexOf(".")
let res = $("#result").val()
let ket = $(this).html()
if(inp === 1){ // этот способ работает но не так как надо
return $("#result").val(res)
}
$("#result").val(res+ket)
})

надо чтобы . точка поставилась один раз

Инна Богомолова
Инна Богомолова

indexOf возвращает НОМЕР позиции, в которой впервые встречается указанный символ.

"123.1".indexOf("."); // выведет 3
"0.1".indexOf("."); // выведет 1

И возвращается -1, если совпадений нет.

Нужно

if( inp > -1 ) { //...
_______________________

let inp = document.getElementById("result").value;
let res = $("#result").val();

А ничо, что это абсолютно одно и то же?) Одно получено через обычный JS, другое методами jQ. Но оба хранят одну и ту же строку.
_______________________________

$(".ket").click(function(){
let $res = $('#result');
let val = $res.val();
let ket = $(this).html();

if( val.contains(".") ) return; // прерывает выполнение функции.

// Если не прервалось, значит тыкали не на точку:

$res.val( val + ket );
});

_____________________

contains более современный метод поиска подстроки, и используется там, где нужно просто получить true / false, а конкретная позиция не интересует.

Если переменная ссылается на jQuery-объект, полезно его называть через $... чтобы знать, что в ней хранится, даже если код станет очень большим.

А значения переменных val и ket хоть и получены через jQuery-методы, но это обычные JS-строки.

Ма
Машулька

Калькулятор нужно делать так

Похожие вопросы
Как можно реализовать категории JSON & JQUERY?
Анимированные плитки jquery/js
Как подключить jquery к WordPress через cdn?
JQuery, Программирование, создаем сайт .
Как в jquery прописать размеры фото? jquery прописать размеры фото?
Вопрос по коду JavaScript (jQuery)
[JQuery] как разрешить ввод символа "_"
Что учить в начале Jquery или React?
Сохранение запроса Jquery
Есть проблема с AJAX (JQuery)