0

大家好,我是 jscipt 的新手,说实话,一般来说编程,但个人使用的学习速度很慢。我寻求有关如何将索引文件中的所有文本框(输入)放入列表容器中的指导,在单击计算按钮之前遍历它们以检查它们是否为空。如果它们是空的,则通知用户哪个是空的。此外,是否有办法阻止用户仅在文本框和数字中输入文本。背景:我创建了一个表单,要求所有字段都填充数字(以小时为单位),然后将从这些值生成图表。我将文件放在 Skydrive 中供人们使用下面的链接下载。

索引文件

我确实尝试了以下方法,但这会提醒我无论 texbox 是否填充天气。

function checkInputsGenerateGraph()
{
if( $('#hutz-hoursInput').val() == ""||$('#hutz-weeksPerYearInput').val() ==      ""||$('#hutz-jobsPerWeekInput').val() == ""||$('#hutz-hourlyMachineRateInput').val() == ""||$('#hutz-maintneneceDowntimeInput').val() == ""||$('#hutz-scrapRateInput').val() == ""||$('#hutz-toolsPerJobInput').val() == ""||$('#hutz-timeToLoadToolInput').val() == ""||$('#hutz-timeToSetPartsInput').val() == "")
{
alert('One them is empty!!');
}
else
{
$("#hutz-graph").slideDown();  
                    $("#hutz-lblImproveMyProcess").slideUp();
                    $("#hutz-hoursInput").slideUp();
                    $("#hutz-weeksPerYearInput").slideUp();
                    $("#hutz-jobsPerWeekInput").slideUp();
                    $("#hutz-ourlyMachineRateInput").slideUp();
                    $("#hutz-ntneneceDowntimeInput").slideUp();
                    $("#hutz-scrapRateInput").slideUp();
                    $("#hutz-toolsPerJobInput").slideUp();
                    $("#hutz-timeToLoadToolInput").slideUp();
                    $("#hutz-timeToSetPartsInput").slideUp();
                    $("#hutz-lblMachineDetails").slideUp();
                    $("#hutz-lblPartSetting").slideUp();
                       $("#hutzcurrencyPreferenceInput").slideUp();
                    createChart();                      
}
}
4

1 回答 1

0

首先,给所有必需的元素一个公共类,例如,我们称之为required

<input type="text" class="required" id="hutz-hoursInput" />

然后,当你的checkInputsGenerateGraph()函数被调用时,你可以遍历required元素并检查它们:

$('.required').each(function() {
  if (this.value.length == 0) {
    alert(this.id + ' is empty!');
  } 
});

您还可以执行以下操作以从输入中删除所有非数字:

$('.required').change(function() {
  this.value = this.value.replace(/[^\d]+/, '');
});

看到它在行动

希望这会为您指明正确的方向!

编辑

这是一个完整的例子:-

function checkInputsGenerateGraph() {

  var isValid = true;

  $('.example').each(function() {
    if (this.value.length == 0) {
      alert(this.id + ' is empty!');
      isValid = false; 
    } 
  });

  if (isValid) {
    alert('do calculations!');   
  }
}

因此,首先遍历所有元素,并确保它们都被填充。如果不是,则设置isValid为 false,这样一旦循环完成,就不会执行计算。

于 2013-01-21T11:21:07.390 回答