2011-03-10 44 views
0

我在这个项目中有点失落。我为一家提供翻译服务的公司工作。那么,我正在制作一个简单的计算器,根据整个项目中的字数计算翻译成本。它还根据输入的字数改变比率。我完成了那部分。我写这个,它的工作原理:需要改变一个按钮的onClick值到另一个值使用select

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的一个小白并没有被编程了一段时间,所以我有点生疏。

感谢您的帮助提前。

回答

1

我想你想要做这样的事情:

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

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

+0

感谢您的快速回复。我不知道jQuery的属性函数。我已经尝试了与我已有的一切并且它完美地工作。谢谢! – Blurn 2011-03-10 00:57:05

1

有几个选项。

  • 你可以绑定到按钮的单击事件的函数:$('#button').click(myFunction),要么有myFunction的检查$('#type')值或在JavaScript跟踪类型的内部时,它的变化。然后,你可以有条件内myFunction的基于类型采取行动,得到反应你想

  • 您可以将功能绑定到按钮的INTIAL类型,然后在更改处理,第一个电话$('#button').unbind('click'),然后绑定一个新的事件(再次,其中选择myNewFunction $('#button').click(myNewFunction)基于类型

相关问题