2015-10-07 1 views
0

Я использую текстовое поле в gridview и хочу рассчитать значения через js в текстовом поле. Мой код не показывает никаких ошибок. Я хочу умножить количество с курсом и получить общую цену.Использование javascript для расчета цены в asp.net

function totalise(price, rate, qt) { 
    var qty = window.document.getElementById(qt).value; 
    var rate = window.document.getElementById(rate).value; 
    var price = rate; 
    price.value = rate * qty; 
} 

<asp:TextBox ID="txtStonePrice" runat="server" onblur=" totalise(this)" ></asp:TextBox> 
+0

По крайней мере, вы должны показать некоторые проблемы с кодом. Здесь нет читателей разума, поэтому никто не может догадаться, что пойдет не так на вашей стороне. –

+1

Пожалуйста, не публикуйте свой код в качестве комментариев, потому что он абсолютно нечитабелен при публикации в этом виде. Используйте ссылку «edit» под своим вопросом, чтобы отредактировать ее. –

+0

Пожалуйста, смотрите снова – Muzzamil

ответ

0

Во-первых, ты на самом деле не переходящая в rate и qt вашей функции totalise, так что вы не можете смотреть их.

Во-вторых, попробуйте использовать parseFloat или parseInt для этих значений (rate.value и qty), иначе они будут строками.

В-третьих, скорость уже равна значению элемента с идентификатором == скоростью, поэтому после того, как вы обратились к другим 2 вещи я говорил, вы хотите что-то вроде этого:

(обратите внимание, что я игнорируя некоторые плохие соглашения о присвоении имен. Кроме того, вы, вероятно, следует сделать некоторые проверки ошибок, чтобы убедиться, что вы на самом деле получаете элементы, которые вы посмотрите вверх Id)

function totalise(price, rate, qt) { 
    var qty = window.document.getElementById(qt).value; 
    var rate = window.document.getElementById(rate); 
    var price = rate; 
    price.value = parseFloat(rate.value) * parseFloat(qty); 
} 
+0

его обработчик событий не является ни скоростью передачи, ни qt. если u parseFloat (rate.value), u получит NaN. все еще .. не ошибка будет отображаться. – g2000

+0

@achan ahhh, ничего себе. Я не знал, что он отправил свой обработчик событий. Я научился игнорировать асп, LOL. – Rooster

0

Ну, я вижу несколько проблем здесь.

Во-первых, вы вызываете вашу функцию от onblur обработчика событий как totalise(this), это означает, что вы не передаете ничего, как rate и qt аргументы, так что невозможно получить соответствующие элементы и получить их vallues.

Во-вторых, это назначение: var price = rate; выглядит излишним. Вы переопределяете значение price из элемента управления, который вы передали для некоторого значения с плавающей запятой, поэтому позже этот вызов price.value = rate * qty не будет иметь никакого эффекта.