Невозможно динамически установить флажок «Тип ввода» в соответствии с требованиями, используя javascript / jQuery - PullRequest
0 голосов
/ 02 июля 2018

Я работаю над sharepoint 2013 edit aspx form. Теперь у меня есть следующий флажок: -

<span title="Yes" class="ms-RadioText">
<input id="UpdateOrder_0e0052d6-9924-4774-b50d-d7ef364d744a_MultiChoiceOption_0" required="" type="checkbox">
<label for="UpdateOrder_0e0052d6-9924-4774-b50d-d7ef364d744a_MultiChoiceOption_0">Yes</label>
</span>

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 ]

0 голосов
/ 03 июля 2018

Добавьте приведенный ниже код в веб-часть редактора сценариев на странице editform.

<script src="//code.jquery.com/jquery-1.12.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
function PreSaveAction(){
    var orderstatus0 = $('select[id^="OrderStatus_"]').val();
    $("#updateordermsg").remove();
    if (orderstatus0 == "Invoiced"){    
        if($('input[id^="UpdateOrder_"]').is(':checked')){
            return true;
        }else{          
            $('input[id^="UpdateOrder_"]').closest("td").append("<span id='updateordermsg' style='color:red'><br/>Please check the UpdateOrder.</span>");          
            return false;
        }
    }else{
        return true;
    }
}
</script>

enter image description here

0 голосов
/ 02 июля 2018

Вы должны использовать .att() jQuery функцию , чтобы установить атрибут для элемента.

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...