根据隐藏的输入类型

时间:2015-06-14 05:23:37

标签: javascript jquery html

我的html具有平铺视图,每个平铺都有一些按钮信息。我想检查输入隐藏字段的值,如果值不在数组中,则引发警报。

HTML

  <div class="box" style="width:30%%">
  <div class="boxInner">

  <form id="form_myws" method="POST">
  <input type="hidden" name="state" value="%s">
   <div class="titleBox">
      <input type="submit" value="submit" name="ws_butt" id="submit" />
    </div>

  </form>
  </div>
  </div>

的javascript

<script type="text/javascript">
$('#submit').click(function(){
    var state_list=["AVAILABLE","IMPAIRED","INOPERABLE",];
    var curr_state=$(this).find("input[type='hidden'][name='state']");
    console.log(curr_state.val());
    if (jQuery.inArray(curr_state.val(),state_list)<0){
            alert("submission is allowed only with AVAILABLE,IMPAIRED,INOPERABLE states.");
    }
});

它没有产生任何警报。如何实现?

3 个答案:

答案 0 :(得分:1)

var curr_state=$(this).find("input[type='hidden'][name='state']");

将其更改为

var curr_state=$(this).closest('form').find("input[type='hidden'][name='state']");

还要添加

return false;

在if语句中,所以它不会提交表单。

答案 1 :(得分:0)

如果你想颠覆submit,你需要这样做:

$('#submit').click(function(e){

    // this:
    e.preventDefault();

    // more code

    // .. or better
    return false;

});

您可以在if - &gt;中包含这些回复然后构造,但你需要做一个或另一个,以防止表单提交。如果您没有使用表单,请不要使用submit

您还可以像这样访问隐藏的输入值:

$('#form_myws > input[name="state"]').val();

工作片段:

var val = $('#form_myws > input[name="state"]').val();

$('body').append(val);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<form id="form_myws">
  <input type="hidden" name="state" value="%s">
  <div class="titleBox">
    <input type="submit" value="submit" name="ws_butt" id="submit" />
  </div>

</form>

答案 2 :(得分:0)

在你的情况下:

 var curr_state=$(this).find("input[type='hidden'][name='state']");

$(this)获取您选择的按钮元素,您无法通过find()找到任何小孩节点所以您应该正确选择隐藏的输入,如:

 var curr_state=$($(this).parent()[0]).prev()[0];

或者像这样:

    var curr_state=$($(this).parent()[0]).siblings('[name="state"]')[0];