0
我有一個MVC CSHTML形式,其中我使用以下語法生成多行:檢索屬性值
foreach (var i in Model)
{
<td>
@Html.TextBoxFor(a => a[j].SFDCID, new { id = "SFDCID", @class ="SFDCID" })
</td>
}
這是產生的HTML代碼段,如:
<input class="SFDCID" id="SFDCID" name="[0].SFDCID" type="text" value="">
<input class="SFDCID" id="SFDCID" name="[1].SFDCID" type="text" value="">
.....
.....
現在我想檢查用戶是否已經在所有SFDCID字段中輸入了值,那麼只有表單提交應該發生,否則應該拋出驗證消息。
對於我試圖使用其名稱屬性&訪問值已經寫了下面的代碼:
for (var i = 0; i <= totalNumberOfRows; i++) {
var elementName = '[' + i + '].SFDCID';
if ($("[name = elementName]").val() == "" ||
$("[name = elementName]").val() == undefined)
{
ConsolidatedErrorMsg = "SFDC ID is a Mandatory field.";
}
}
我已經帶班試過,ID &名稱選擇獲得的價值,但在第2它只在第一行工作。 隨着名稱選擇它的名字都工作,如果我硬代碼,如「[0] .SFDCID」 &「[1] .SFDCID」但是當我與0 & 1代我,元素名稱它不工作。
請幫我糾正任何語法錯誤我在此選擇。
感謝安德烈這裏指出的缺陷。我想使用內置的必需字段驗證程序,但是此SFDCID字段會根據其他一些屬性值更改其行爲(強制性或可選)。我可以使用RequiredIf屬性或重寫Validate()方法,但這些方法不提供客戶端驗證選項。所以最後不得不選擇jQuery的驗證方式。 – Biki
如果你知道更好的驗證方法,請幫我提供一些線索。 Thx提前。 – Biki
@Biki,如果你實現了'IClientValidatable','[RequiredIf]'屬性確實提供了客戶端驗證。有一個看看[萬無一失](http://foolproof.codeplex.com/),儘管其更容易夠寫你自己的 - 請參考[文章](http://www.devtrends.co.uk/blog/the -complete導到驗證功能於asp.net-MVC -3-部分-2) –