モデル:
[Display(Name = "City"]
[Required]
[RegularExpression(@"^(?!\d$).*$"]
[StringLength(20,MinimumLength = 2]
public string City { get; set; }
形:
@Html.LabelFor(x => x.City, new { @class = "control-label" })
@Html.TextBoxFor(x => x.City, new {id="city" })
脚本:
<script>
$(document).ready(function () {
$("#identificationForm").submit(function (e) {
var required=document.getElementById("city").required;
console.log(required);
// e.preventDefault();
});
});
</script>
いくつかの条件が満たされた場合に必要なプロパティを削除したいのですが、この方法でこれを行うことはできません。
JavaScriptは大文字と小文字を区別します。
使用する
document.getElementById("city").required = false;
要素が存在する前にアクセスしようとすると、コードが機能しないことに注意してください。イベントでコードを実行しない場合は、要素の後にスクリプトを配置します。
<input type="text" id="city" required>
<script>
if(somecondition is true){
document.getElementById("city").required = false;
}
</script>
また、サブミット関数でこれを変更することはできず、フォームが遅すぎるのでフォームがサブミットされることを期待できないことにも注意してください。
次を使用できます。
document.getElementById("city").removeAttribute("required");
またはjQueryを使用
$('#city').removeAttr('required')
これを行う必要があります:
if(somecondition is true)
{
var city = document.getElementById("city");
city.removeAttribute('required');
}
PHPでは非常に簡単です。これは送信中にフォームを検証しません。
<input type="submit" onclick="return confirm('Are you sure?')" value="Abort Test" formnovalidate>
_On Submit
_関数が必要な属性を削除するまでに、フォームはすでに検証に合格しています。手順は、最初に検証を無効にする必要があり、その後、必須フィールドを空にしてフォームを送信できます。次に、必要な属性を削除し、最後に$.validator.unubtrusive.parse(form)
を介して検証を手動で呼び出します。これにより、_string length
_やformatting
などの他の検証タイプを呼び出すことでフォームが検証されます。必須の属性。チェックif form.valid() then submit() else
は何もしません。
テキストフィールドをフォームに配置すると、必須フィールドをnovalidateという特別な属性で上書きすることができます。これは構文です:<form novalidate> .. </form>
以下に例を示します。
<form novalidate>
Zip code: <input type="text" name="zipcode" pattern="[0-9]{5}" required><br/>
<input type="submit">
</form>
novalidate属性 これはnovalidate属性を使用した2つのライブデモへのリンクです。
誰かがこれを行うためのより良い方法をまだ見つけているかどうかはわかりません、それはそれを行うための最も効率的な方法ではないかもしれませんが、PHPを使用してこれを行うことができます。ページが読み込まれる前に会うことを知っているなら、あなたはこれを持つことができます:
<input type="text" id="city"
<?php
if (condition_is_met) {
echo ">";
} else {
echo "required>";
}
?>
または、フォームが送信された瞬間に、nullの場合は無効にすることができます。
if($("#City").val().trim().length == 0) $("#City").attr("disabled", true);