0

Я хочу знать, как я могу активировать ненавязчивые проверки JQuery, когда я не получил никакой формы, и с этой схемой:Как проверить поле textboxfor с jquery и без формы?

<script type="text/javascript"> 
     $('.btnAddAsync').click(function (e) { 
      e.preventDefault(); // Avoid href postback 
      var $letter = $(this); 

      var charityAmount = $(".charity-gift"); 

      // ******* 
      // IF charityAmount IS VALID based on the unobtrusive rule then do the following 
      // ******* 
      var href = charityAmount.attr('data-href'); 
      href = href.replace(/(charityGiftAmount=)[0-9]+/ig, '$1' + $(".charity-gift").val()); 
      ...... 
     }); 
    </script> 

HTML-:

<div class="row"> 
     <div class="col-lg-12"> 
       <div class="input-group"> 
        @Html.TextBoxFor(m => item.CharityGiftAmount, new { @class = "charity-gift form-control", data_href = Url.Action("Add", "Checkout", new { eventSlug = Model.Slug, eventId = Model.Id, skuId = item.Id, quantity = 1, charityGiftAmount = 0 }) }) 
        <span class="input-group-btn"> 
         <button class="btn btn-default btnAddAsync" type="button">@SharedResources.AddToCart</button> 
        </span> 
       </div> 
     </div> 
    </div> 
    @Html.ValidationMessageFor(m => item.CharityGiftAmount, "", new { @class = "text-danger" }) 

Если бы я имел форму, я мог бы использовать form.valid(), но я не знаю об этом случае использования, когда я получил только текстовое поле.

Спасибо,

Дэвид

- Редактировать

Я забыл упомянуть об этом очень важную деталь: Здесь валидацию я получил на textboxfield:

<input class="charity-gift form-control" data-href="/Checkout/Add?eventSlug=trail-and-donation&amp;eventId=4&amp;skuId=5&amp;quantity=1&amp;charityGiftAmount=0" data-val="true" data-val-regex="Invalid amount" data-val-regex-pattern="^(\d+(?:[\.\,]\d{2})?|)$" id="item_CharityGiftAmount" name="item.CharityGiftAmount" type="text" value=""> 
+0

Какова ваша проверка, что вам нужно? Вы просто хотите узнать, заполнено ли оно? –

+0

похоже, что вам нужно получить значение «благотворительный подарок». Затем вам нужно изменить 'var charityAmount = $ (". Charity-gift ");' to 'var charityAmount = $ (". Charity-gift "). Val();' –

+0

См. Мое редактирование –

ответ

0

Наконец , здесь решение. Если вы настроили правило регулярных выражений на стороне сервера, вы все равно можете получить шаблон регулярного выражения с помощью jquery и выполнить проверку вручную.

<script type="text/javascript"> 
$('.btnAddAsync').click(function (e) { 
    var charityAmount = $(".charity-gift"); 

    var validationRule = new RegExp(charityAmount.attr('data-val-regex-pattern')); 

    if (validationRule.test(charityAmount.val())) { 
     // Regex passed 

     var href = charityAmount.attr('data-href'); 
     href = href.replace(/(charityGiftAmount=)[0-9]+/ig, '$1' + $(".charity-gift").val()); 
     ...... 
    } 
    else { 
     // Regex failed 
     ...... 
    } 
});