#javascript #php #jquery #ajax #forms
#javascript #php #jquery #ajax #формы
Вопрос:
В поисках решения другой проблемы я столкнулся с возможностью запуска javascript при наведении курсора мыши
Я хотел бы запустить это:
$(document).ready(function(){
function myPayment()
{
var value = document.mortgagecalc.value_input.value;
var rate = document.mortgagecalc.rate_input.value;
var term = document.mortgagecalc.term_input.value;
var deposit = document.mortgagecalc.deposit_input.value;
var fee = document.mortgagecalc.fee_input.value;
var totalloan = ((value fee) - deposit) * 1 rate;
var totalinterest = (totalloan * 1 rate) - totalloan;
var months = (term * 12);
var repay = totalloan / months;
var interest = totalinterest / months;
// Calculate mortgage payment and display result
document.getElementById('repay_input').value = repay;
document.getElementById('interest_input').value = interest;
}
}
Когда пользователь наводит курсор мыши на мою кнопку отправки
Когда скрипт запускается, я бы хотел, чтобы он заполнял эти поля, которые затем включаются в действие формы
<input type="hidden" name="repay" id="repay_input" value="">
<input type="hidden" name="interest" id="interest_input" value="">
Сейчас это, похоже, не работает, но это может быть потому, что я пропустил небольшую вещь или она просто не будет работать полностью
Спасибо — Если у кого-нибудь есть лучшая идея о том, как достичь моей цели, пожалуйста, дайте мне знать, я пробовал PHP, но без радости
Кнопка для наглядности
<button class="col-sm-4 enter-button" type="submit" name="submit" onmouseover="return myPayment()" value="Calculate">Calculate Payments</button>
Обновить:
Я изменил javascript и кнопку, но затем пропустил присвоение имени форме в соответствии со ссылкой в JS
Также мои расчеты по ипотеке были ошибочными из-за того, как форма собирает процентную ставку
Комментарии:
1. Как вы привязываете событие наведения курсора мыши? его трудно отлаживать, когда все части не включены в сообщение .. также, пожалуйста, постарайтесь предоставить минимальный, полный и проверяемый пример
2. Я не вижу никакого использования
mouseover
в вашем коде. Где именно у вас это есть?3. @SajjanSarkar — Добавлено
4. @Dekel — Добавлено к вопросу
Ответ №1:
Объявите свою функцию вне document.ready
оболочки jQuery, и ваша кнопка должна выглядеть только так:
function myPayment()
{
var value = document.mortgagecalc.value_input.value;
var rate = document.mortgagecalc.rate_input.value;
var term = document.mortgagecalc.term_input.value;
var deposit = document.mortgagecalc.deposit_input.value;
var fee = document.mortgagecalc.fee_input.value;
var totalloan = ((value fee) - deposit) * 1 rate;
var totalinterest = (totalloan * 1 rate) - totalloan;
var months = (term * 12);
var repay = totalloan / months;
var interest = totalinterest / months;
// Calculate mortgage payment and display result
document.getElementById('repay_input').value = repay;
document.getElementById('interest_input').value = interest;
}
<button onmouseover="myPayment()" ...></button>
Комментарии:
1. Эти изменения, похоже, не сработали — нужно ли мне, чтобы скрипт находился в определенном месте, например, под формой?
2. @Frsti Нет, потому что это функция, объявленная так, как
function name() { ... }
она должна быть способна перемещаться куда угодно. Поместите функцию в ее собственный<script></script>
элемент внутри head.3. Я получаю сообщение об ошибке в консоли Chrome — Uncaught TypeError: не удается прочитать свойство ‘value_input’ неопределенного значения, по-видимому, ему не нравится использование значения? Изменен на «кредит», но по-прежнему выдает ошибку
4. Хорошо, я обнаружил ошибку, я не назвал форму, на которую ссылался JS, и я получаю цифры в своих полях, что является лучшим, что я сделал за весь день — большое вам спасибо