首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只需要3个表单域中的2个

只需要3个表单域中的2个
EN

Stack Overflow用户
提问于 2016-07-15 15:00:47
回答 2查看 72关注 0票数 2

我在做一个收益率计算器。有3个字段。收益率百分比、购买价格和租金。

例如,我想要10%的收益率,然后我支付50万,然后我的计算器将得到每月的租金,以达到10%的收益率。此外,如果我想要10%的收益率,并且我输入了每月500的房租,那么我的计算器就会得到购买价格。最后,如果我支付500k,假设房租是500,那么我的计算器将得到收益率百分比。

代码语言:javascript
运行
复制
<form>
   <input type="number" name="purchase_price">
   <input type="number" name="rent">
   <input type="number" name="yield">
   <input type="submit" value="Calculate">
</form>

此外:

如果填充了其中任何2个字段,则第三个get将被禁用,我该如何使其生效?

示例:

价格&租金=产量字段被禁用

价格和产量=租金字段被禁用

gets &gets=价格字段禁用

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-16 10:56:43

在我的代码示例中,我的目标是所有不是submit按钮的输入。因此,如果您在其他地方有一个输入字段,这将停用它。我使用它是为了简单起见,你应该在你的表单中添加一个id或者class。

代码语言:javascript
运行
复制
    var form = document.querySelector('form'); 

    form.addEventListener('change',function(event){
     elms = document.querySelectorAll('input:not([type="submit"]');
      var count = 0; 
        Array.prototype.forEach.call(elms,function(elm){
             if (elm.value != ''){
                 count++; 
              }
        });
       
       Array.prototype.forEach.call(elms,function(elm){
             if (count >= 2 && elm.value === ''){
                 elm.disabled = true; 
               }
             else{
               elm.disabled = false;
               }
        });
      
    });
代码语言:javascript
运行
复制
  <form>
       <input type="number" name="purchase_price">
       <input type="number" name="rent">
       <input type="number" name="yield">
       <input type="submit" value="Calculate">
    </form>

票数 1
EN

Stack Overflow用户

发布于 2016-07-15 15:13:25

试试这个:

代码语言:javascript
运行
复制
<form id="calculator">
  Price <input type="number" name="purchase_price" class="input"><br/>
  Rent <input type="number" name="rent" class="input"><br/>
  Yield <input type="number" name="yield" class="input"><br/>
  <input type="submit" value="Calculate">
</form>

现在,您的jQuery代码如下:

代码语言:javascript
运行
复制
$("#calculator").on("submit", function(e) {
    e.preventDefault();
    var blank = 0;
    $('.input').each(function() {
        if ($(this).val() == '') {
           blank++;
        }
    });
    if (blank <= 1) {
        //console.log("Submitted!");
        $(this).submit();
    }
 });

请参阅JS小提琴:https://jsfiddle.net/ahpj6o6h/4/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38389770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档