需要使用select将按钮的onClick值更改为其他值

时间:2011-03-10 00:36:00

标签: javascript jquery html

在我的项目中,我有点迷失了。我在一家提供翻译服务的公司工作。好吧,我正在制作一个简单的计算器,根据整个项目中的单词数计算翻译成本。它还会根据输入的单词数量更改费率。我完成了这一部分。我写了这个并且它有效:

function wordcountprice(){
var price,  final, 
    a=document.getElementById('words'),  
wc= parseFloat(a.value) || 0;
if(wc< 10000) price= .29;
else price= wc<20000? .26: .24; 
final= (wc*price).toFixed(2);
document.getElementById('estPrice').innerHTML = 'Your estimated price is: $' + final;}

此时我们有6种翻译工作。其中五个将使用该功能,最后一个将使用固定价格的基本功能。我以为我会使用下拉选择框来改变功能。

我在我的HTML中调用上面的函数:

  <input type="text" id="words">&nbsp;&nbsp;<input type="button" id="button" value="Calculate" onClick="wordcountprice();"> <br /><b id='estPrice'>Estimated Price</b>

我尝试了几件事,但没有一件事有效。我假设最好的方法是使用jQuery的change()或select()函数。我尝试用这样的jQuery创建一个新函数:

$(function() {
$('#type').change(function() {
    var type = $(this).val();
    $('#button').val(type);
}); });

只更改按钮的值而不是onClick事件。我不知道如何或者是否可以像这样更改onClick事件。我甚至不知道这是否是做我想做的最有效的方法。当我使用这个HTML尝试时,我调用了该函数:

<select id='type'><option value='1'>A</option>
<option value='2'>B</option>
<option value='3'>C</option>
<option value='4'>D</option></select>

我是jQuery的菜鸟,并且一段时间没有编程,所以我有点生疏。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

有几种选择。

  • 您可以将函数绑定到按钮的单击事件:$('#button').click(myFunction),并让myFunction检查$('#type')的值,或者在javascript更改时在内部跟踪类型。然后你可以根据类型在myFunction中有条件地采取行动来得到你想要的反应

  • 您可以将函数绑定到初始类型的按钮,然后在更改处理程序中,首先调用$('#button').unbind('click'),然后绑定一个新事件(同样,$('#button').click(myNewFunction)其中myNewFunction是根据类型选择

答案 1 :(得分:1)

我想你想做这样的事情:

$('#button').attr("onClick", "wordcountprice('"+type+"');" );

http://api.jquery.com/attr/