代码之家  ›  专栏  ›  技术社区  ›  john Gu

无法使用javascript/jquery根据需要设置类型的输入复选框

  •  0
  • john Gu  · 技术社区  · 7 年前

    我正在编写SharePoint 2013编辑ASPX表单。现在我有了以下复选框:-

    <span title=“yes”class=“ms radiotext”>
    <input id=“updateOrder_0e0052d6-9924-4774-b50d-d7ef364d744a_multichoiceoption_0”required=“”type=“checkbox”>
    <label for=“更新订单”是</label>
    </span>
    

    现在,我希望在某些情况下根据需要设置此复选框,这样用户就不能提交表单,除非他们选中此复选框。所以我写了下面的javascript:-

    var orderstatus0=$('select[id^=“orderstatus”]').val();
    if(orderStatus0=“已开票”)
    {
    
    $('input[id^=“updateOrder_“]”)。必需;
    var x=document.getElementByID('updateOrder_0e0052d6-9924-4774-b50d-d7ef364d744a_multichoiceoption_0')。必需;
    document.getElementByID('updateOrder_0e0052d6-9924-4774-b50d-d7ef364d744a_multichoiceoption_0').required=true;
    警报(x);
    }
    

    但目前不会应用任何验证,即使在警报内,我也希望得到true,但我得到的是false。那么,有人能就此提出建议吗? 谢谢

    enter image description here

    现在,我希望在某些情况下根据需要设置此复选框,这样用户就不能提交表单,除非他们选中此复选框。所以我写了以下javascript:

    var orderstatus0 = $('select[id^="OrderStatus_"]').val();
    if (orderstatus0 == "Invoiced")
        {
    
            $('input[id^="UpdateOrder_"]').required;
            var x = document.getElementById('UpdateOrder_0e0052d6-9924-4774-b50d-d7ef364d744a_MultiChoiceOption_0').required;
            document.getElementById('UpdateOrder_0e0052d6-9924-4774-b50d-d7ef364d744a_MultiChoiceOption_0').required= true;
            alert(x);                               
        }
    

    但目前不会应用任何验证,即使是在我期望获得的警报中true但是我得到了false…那么,有人能就此提出建议吗? 谢谢

    2 回复  |  直到 7 年前
        1
  •  2
  •   LZ_MSFT    7 年前

    将下面的代码添加到editform页的脚本编辑器Web部件中。

    <script src=“//code.jquery.com/jquery-1.12.4.min.js”type=“text/javascript”></script>
    <script type=“text/javascript”>
    函数PreSaveAction()。{
    var orderstatus0=$('select[id^=“orderstatus”]').val();
    $(“updateOrderMsg”).remove();
    if(orderStatus0=“已开票”)。{
    if($('input[id^=“updateOrder_u“]”).is(':checked'))){
    返回真值;
    }否则{
    $('input[id^=“updateOrder_“]”).closest(“td”).append(“<span id='updateOrderMsg'style='color:red'><br/>请检查updateOrder。</span>“);
    返回false;
    }
    }否则{
    返回真值;
    }
    }
    </script>
    
    
    

    enter image description here

        2
  •  1
  •   Sujan Gainju    7 年前

    你应该使用 .att() jQuery function 为元素设置属性。

    var orderstatus0 = $('select[id^="OrderStatus_"]').val();
    $('input[id^="UpdateOrder_"]').attr("required", "required");
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <form>
      <span title="Yes" class="ms-RadioText">
        <input id="UpdateOrder_0e0052d6-9924-4774-b50d-d7ef364d744a_MultiChoiceOption_0" type="checkbox">
        <label for="UpdateOrder_0e0052d6-9924-4774-b50d-d7ef364d744a_MultiChoiceOption_0">Yes</label>
      </span>
      <input type="submit" value="Submit">
    </form>