老实说,我不确定该怎么调用它,但我们会看看您是否理解我的问题。
我在标准 HTML 页面上有一个表格,我使用 Javascript/jQuery 进行了一些计算。
function addThem() {
var result;
result = userInput + 100;
return result;
}
这只是我拥有的一个简单(未完成)功能的示例。我想要做的是获取用户输入,然后将结果显示在表格中。据我所知,我可以使用:
document.getElementById("addThemResult").innerHTML = result;
HTML 将是:
<td id="addThemResult"></td>
我以前做过,效果很好。现在我的问题是,我将有多个字段用于同一事物,但不知道如何接受多个用户输入并使用相同的函数显示它们。
我敢打赌我没有多大意义,所以我会尝试创建一个小例子。
<table>
<tr>
<td></td>
<td>One</td>
<td>Two</td>
</tr>
<tr>
<td>Money</td>
<td>
<input id="money1" />
</td>
<td>
<input id="money2" />
</td>
</tr>
<tr>
<td>Money Left</td>
<td id="moneyleft1"></td>
<td id="moneyleft2"></td>
</tr>
</table>
$(document).ready(function () {
$('input').keyup(function () {
cal();
});
});
function cal() {
var cal1, result;
cal1 = parseFloat(document.getElementById("money1").value);
result = cal1 - 100;
document.getElementById("moneyleft1").innerHTML = "£" + result;
}
所以如果我们看一下我做的例子,如果你在“money - one”输入中输入一个值,它会显示下面的结果。我现在想要做的是使用第二个输入并使用相同的函数得到“money - two”的结果。
我该怎么做呢,请注意,我需要用它来做的事情要大得多,大约有 6 行。
我希望这是有道理的,任何帮助都会很好,这可能是一件简单的事情,但我似乎无法理解它。
当我遇到更多我需要做的事情时,它已经从我想象的改变了。现在有更多的输入,它们几乎无处不在。其中一些需要在计算中使用,另一些将在字段中显示结果
如您所见,无论您输入什么内容,结果总是会发生变化。我需要它停止,我想指出它们应该去哪里以及何时应该改变。
例如:
Money = 10000 so the field "cal1" for that column changes.
如果我然后输入英里输入:
Miles = 2300 the "cal1" field should not change and "cal2" field should have the result.
我只能这么想,但感觉有点作弊。
因此将类放在每个输入上,然后在该类上键入。
编辑:我仍然无法从同一列的输入中获取值。我也认为我的“作弊”方式行不通。
对,我举了一个更好的例子,那是我的错,因为我没有把它解释得很好。
在此示例中,您将看到有多个输入,但它们仅在第一列中起作用(因为不知道如何使其他列起作用)。所以现在我需要使用相同的函数在所有列中工作。
<table>
<tr>
<th></th>
<th>Option1</th>
<th>Option2</th>
<th>Option3</th>
<th>Option4</th>
</tr>
<tr>
<td>Money</td>
<td>
<input type="number" id="money" />
</td>
<td>
<input type="number" />
</td>
<td>
<input type="number" />
</td>
<td>
<input type="number" />
</td>
</tr>
<tr>
<td>Upfront</td>
<td>
<input type="number" id="upfront" />
</td>
<td>
<input type="number" />
</td>
<td>
<input type="number" />
</td>
<td>
<input type="number" />
</td>
</tr>
<tr>
<td>Overall Price</td>
<td id="overallPrice"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Discount</td>
<td>
<input type="number" id="discount" />
</td>
<td>
<input type="number" />
</td>
<td>
<input type="number" />
</td>
<td>
<input type="number" />
</td>
</tr>
<tr>
<td>Dicount Price</td>
<td id="discountPrice"></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
$(document).ready(function () {
$('input').keyup(function () {
overallPrice();
discountPrice();
});
});
function overallPrice() {
var cal1, cal2, result;
cal1 = parseFloat(document.getElementById("money").value);
cal2 = parseFloat(document.getElementById("upfront").value);
result = cal1 - cal2;
document.getElementById("overallPrice").innerHTML = "£" + result;
return result;
}
function discountPrice() {
var cal1, cal2, result;
cal1 = parseFloat(document.getElementById("discount").value);
cal2 = overallPrice();
result = cal2 - cal1;
document.getElementById("discountPrice").innerHTML = "£" + result;
}
由于带有输入的额外行,它与我的第一个略有不同。到目前为止的答案无法在列中填写第二组输入。
注意:会有2组以上的输入,这只是一个例子。
最佳答案
这应该适用于任意数量的 <td>的 .. 只是最后一个表行应该有一个 id .. 在我的例子中是 total
...
<tr id="total">
<td>Money Left</td>
<td></td>
<td></td>
</tr>
....
试试这个
$(document).ready(function () {
$('input').keyup(function () {
cal(this);
});
});
function cal(obj) {
var result = parseFloat(obj.value) - 100;
var tdPos=$(obj).parent().index();
$('#total').find('td:eq('+tdPos+')').html("£" + result);
}
以防万一如果您不能修改 HTML 元素...没有 id,您的选择器应该是
function cal(obj) {
var cal1, result;
cal1 = parseFloat(obj.value);
result = cal1 - 100;
var tdPos=$(obj).parent().index();
//$('#total').find('td:eq('+tdPos+')').html("£" + result);
//here
$(obj).closest('tr').next().find('td:eq('+tdPos+')').html("£" + result);
}
简而言之
$(document).ready(function () {
$('input').keyup(function () {
var result = parseFloat(this.value) - 100;
var tdPos=$(this).parent().index();
$('#total').find('td:eq('+tdPos+')').html("£" + result);
});
});
但我总是选择第一个 id 选择器……性能方面,第一个要好得多,因为 id 选择器速度很快,而且不必遍历 DOM 元素。
关于javascript - 多次计算,同页显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20700435/
我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我的代码目前看起来像这样numbers=[1,2,3,4,5]defpop_threepop=[]3.times{pop有没有办法在一行中完成pop_three方法中的内容?我基本上想做类似numbers.slice(0,3)的事情,但要删除切片中的数组项。嗯...嗯,我想我刚刚意识到我可以试试slice! 最佳答案 是numbers.pop(3)或者numbers.shift(3)如果你想要另一边。 关于ruby-多次弹出/移动ruby数组,我们在StackOverflow上找到一
这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,
所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择
我试图在索引页中创建一个超链接,但它没有显示,也没有给出任何错误。这是我的index.html.erb代码。ListingarticlesTitleTextssss我检查了我的路线,我认为它们也没有问题。PrefixVerbURIPatternController#Actionwelcome_indexGET/welcome/index(.:format)welcome#indexarticlesGET/articles(.:format)articles#indexPOST/articles(.:format)articles#createnew_articleGET/article
我是rails的新手,想在form字段上应用验证。myviewsnew.html.erb.....模拟.rbclassSimulation{:in=>1..25,:message=>'Therowmustbebetween1and25'}end模拟Controller.rbclassSimulationsController我想检查模型类中row字段的整数范围,如果不在范围内则返回错误信息。我可以检查上面代码的范围,但无法返回错误消息提前致谢 最佳答案 关键是您使用的是模型表单,一种显示ActiveRecord模型实例属性的表单。c
目前,Itembelongs_toCompany和has_manyItemVariants。我正在尝试使用嵌套的fields_for通过Item表单添加ItemVariant字段,但是使用:item_variants不显示该表单。只有当我使用单数时才会显示。我检查了我的关联,它们似乎是正确的,这可能与嵌套在公司下的项目有关,还是我遗漏了其他东西?提前致谢。注意:下面的代码片段中省略了不相关的代码。编辑:不知道这是否相关,但我正在使用CanCan进行身份验证。routes.rbresources:companiesdoresources:itemsenditem.rbclassItemi
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
如果我在模型中设置验证消息validates:name,:presence=>{:message=>'Thenamecantbeblank.'}我如何让该消息显示在闪光警报中,这是我迄今为止尝试过的方法defcreate@message=Message.new(params[:message])if@message.valid?ContactMailer.send_mail(@message).deliverredirect_to(root_path,:notice=>"Thanksforyourmessage,Iwillbeintouchsoon")elseflash[:error]