javascript - 提交前检查输入总和

标签 javascript html

我需要一些帮助:我有以下表格:

    <form id="myForm" method="post" action="?action=agc">
<input type="hidden" name="start_date" value="<?= $_POST['start_date'] ?>" /> 
<input type="hidden" name="end_date" value="<?= $_POST['end_date'] ?>" /> 
<input type="hidden" name="c_name" value="<?= $_POST['c_name'] ?>" /> 
<input type="hidden" name="cluster" value='<?= $abn_cluster[0] ?>' />
<input type="hidden" name="abn" value="abn" />

<a href="javascript:addOption();">Add percent</a> <br /><br />
ABN percent<br />
<input type="text" name="poll[option][0][percent]" class="toAdd">&nbsp;<input type="text" name="poll[option][0][name]" value="<?= $_POST['c_name'] ?>_0_">&nbsp;<input type="checkbox" class="optionBox" value="True" name="poll[option][0][control_sample]" /><br />

<script> 
var optionNumber = 1;  
function addOption() { 
    var theForm = document.getElementById("myForm"); 
    var newOption = document.createElement("input"); 
    var newOption2 = document.createElement("input"); 
    var newOption3 = document.createElement("input"); 
    var newLabel = document.createElement("label");
    var newContent = document.createTextNode("  ");
    var newContent2 = document.createTextNode("  ");

    newOption.name = "poll[option]["+optionNumber+"][percent]";
    newOption.type = "text";
    theForm.appendChild(newOption);
    theForm.appendChild(newContent);
    newOption2.name = "poll[option]["+optionNumber+"][name]";
    newOption2.type = "text";
    newOption2.value = "<?= $_POST['c_name'] ?>_"+optionNumber+"_"
    theForm.appendChild(newOption2);
    theForm.appendChild(newContent2);

    newOption3.name = "poll[option]["+optionNumber+"][control_sample]";
    newOption3.type = "checkbox";
    newOption3.className = "optionBox";
    newOption3.value = "True"
    theForm.appendChild(newOption3);

    theForm.appendChild(document.createElement("br")); 
    optionNumber++;
}
</script>
    </p>
</div>
<div class="modal-footer" id="appendform">
    <button type="submit" class="btn btn-primary">Continue</button>
    </form>

现在因为一些输入是根据要求生成的,我不知道如何检查 (.toAdd) 的总和。在提交之前,我基本上需要确保它等于 100。什么可以解决我的问题?谢谢。

最佳答案

尝试

<form id="myForm" method="post" action="iap_crm_campaign.php?action=abngamecampaign" onsubmit="return validate()">

然后

function validate(){
    var sum = 0;

    for(var i = 0; i < optionNumber; i++){
        sum += parseFloat(document.getElementsByName('poll[option][' + i + '][percent]')[0].value);
    }

    if( sum == NaN || sum != 100){
        alert('Sum of percentage must be 100');
        return false;
    }
}

演示:Fiddle

关于javascript - 提交前检查输入总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17829002/

相关文章:

javascript - 如何搜索外部 URL 的 HTML 源并将结果返回到我的应用程序?

javascript - 顺序运行 Q Promise

html - CSS - 包装优先级

javascript - Phonegap 本地通知不执行任何操作

html - 无法使用html和css水平显示菜单

JavaScript 不喜欢 10151920335784069 并拒绝接受它

javascript - 使用 ng-repeat 在 Angular 选项卡中使用 jQuery 插件的多个实例

javascript - JQuery UI 自动完成 AJAX 调用

javascript - 为什么 "script"内的代码在 html 中不起作用?

javascript - 如何删除tbody中添加的附加内容?