如果点击时字段为空,则显示工具提示

时间:2018-07-25 19:20:18

标签: javascript jquery tooltip

我知道这类似于表单上的“必需”,但如果可能的话,我需要它像这样工作。我已经在这里使用经过修改的代码,但是它仅适用于1个form元素。我唯一可以做到的方法是将同一过程添加4次,但是有没有更快更干净的方法呢?基本上,这可以在多种形式上使用,并且各种不同的输入得到不同的消息。谢谢

JS小提琴是https://jsfiddle.net/DTcHh/79251/

并且HTML代码是

<label class="control-label" for="id_stock">Stock</label>
<button id="id_stock_btn" type="button" name="stock_btn">Check form</button>
<input type="number" name="stock" class="form-control" id="id_stock" required="" data-original-title="" title="">
<input type="number2" name="stock" class="form-control" id="id_stock" required="" data-original-title="" title="">
<input type="number3" name="stock" class="form-control" id="id_stock" required="" data-original-title="" title="">
<input type="number4" name="stock" class="form-control" id="id_stock" required="" data-original-title="" title="">

JS是:

/* Latest compiled and minified JavaScript included as External Resource */
// Initialize tooltip on #id_stock input
$('#id_stock').tooltip({
  title: "Please enter address",
  trigger: "manual"
});

// Manually hide tooltip when re-clicking the input
// This can be modified to hide the tooltip whenever you see fit
$("#id_stock").click(function(e) {
  $(this).tooltip("hide");
});

$("#id_stock_btn").click(function() {
  /* Act on the event */
  if(!$('#id_stock').val())
  {
    $('#id_stock').tooltip("show");  // Show tooltip
  }
  else {
    //Do Some Other Stuff
  }

});

2 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,则您正在尝试将保存javascript应用于4个类似的元素。

一种简单的方法是将输入内容包装在div中,然后更改jquery选择器以选择所有表单。我在您的JS小提琴中使用了以下代码。

<label class="control-label" for="id_stock">Stock</label>
<button id="id_stock_btn" type="button" name="stock_btn">Check form</button>
<div id="wrapper">
  

id属性为HTML元素(   值在HTML文档中必须是唯一的)。   名称应该不同。

    <input type="number" name="stock" class="form-control" id="id_stock1" required="" data-original-title="" title="">
    <input type="number2" name="stock1" class="form-control" id="id_stock2" required="" data-original-title="" title="">
    <input type="number3" name="stock2" class="form-control" id="id_stock3" required="" data-original-title="" title="">
    <input type="number4" name="stock3" class="form-control" id="id_stock4" required="" data-original-title="" title="">
</div>

/* Latest compiled and minified JavaScript included as External Resource */
    // Initialize tooltip on #id_stock input
    $('#wrapper input').tooltip({
      title: "Please enter address",
      trigger: "manual"
    });

    // Manually hide tooltip when re-clicking the input
    // This can be modified to hide the tooltip whenever you see fit
    $('#wrapper input').each(function() {
        $(this).click(function(e) {
            $(this).tooltip("hide");
        })
    });

    $("#id_stock_btn").click(function() {
      /* Act on the event */
      $('#wrapper input').each(function() {
          if(!$(this).val())
          {
            $(this).tooltip("show");  // Show tooltip
          }
          else {
            //Do Some Other Stuff
          }
      })

    });

答案 1 :(得分:0)

首先,您不应对多个元素使用相同的ID。它们必须是唯一的。要为多个元素处理相同的过程,请使用classdata-属性。

$('.form-control').tooltip({
    trigger: "manual"
});

$("#id_stock_btn").click(function(){
    $(".form-control").each(function(){
        if(!$(this).val())
        {
            $(this).tooltip("show");
            return false;
        }
    });
    
});

$(".form-control").click(function(e) {
    $(this).tooltip("hide");
});
body {
    margin: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>

<label class="control-label" for="id_stock">Stock</label>
<button id="id_stock_btn" type="button" name="stock_btn">Check form</button>
<input type="number" name="stock" class="form-control" id="id_stock" required="" data-original-title="Please  enter Name" title="">
<input type="number2" name="stock" class="form-control" id="id_stock" required="" data-original-title="Please  enter Email" title="">
<input type="number3" name="stock" class="form-control" id="id_stock" required="" data-original-title="Please  enter Phone" title="">
<input type="number4" name="stock" class="form-control" id="id_stock" required="" data-original-title="Please  enter Address" title="">