提交 4bfc5e18 编写于 作者: R recena

Client-side form validation

上级 143ccab9
......@@ -39,8 +39,8 @@ THE SOFTWARE.
<label for="name">Enter an item name</label>
<input name="name" id="name" placeholder="New item name..." type="text" />
<div class="input-help">&#187; ${%ItemName.help}</div>
<div id="itemname-validation-required" class="input-validation-message input-message-disabled">&#187; ${%ItemName.validation.required}</div>
<div id="itemtype-validation-required" class="input-validation-message input-message-disabled">&#187; ${%ItemType.validation.required}</div>
<div id="itemname-required" class="input-validation-message input-message-disabled">&#187; ${%ItemName.validation.required}</div>
<div id="itemtype-required" class="input-validation-message input-message-disabled">&#187; ${%ItemType.validation.required}</div>
</div>
</div>
......@@ -48,16 +48,15 @@ THE SOFTWARE.
<j:if test="${!empty(app.itemMap)}">
<div class="item-copy">
<p class="description">if you want to create a new item from other existing, you can use this option:</p>
<p class="description">${%CopyOption.description}:</p>
<div class="add-item-copy">
<input type="radio" id="copy" name="mode" value="copy" />
<input type="radio" name="mode" value="copy" />
<div class="icon">
<img src="${resURL}/images/48x48/copy.png" />
</div>
<label>${%Copy from}</label>
<j:set var="descriptor" value="${it.descriptor}" />
<s:textbox id="from" name="from" field="copyNewItemFrom"/>
<div id="copyfrom-validation-required" class="input-validation-message input-message-disabled">&#187; ${%CopyFrom.validation.required}</div>
</div>
</div>
</j:if>
......@@ -65,7 +64,6 @@ THE SOFTWARE.
<div class="footer">
<div class="btn-decorator">
<button type="submit" id="ok-button">OK</button>
<!-- <input type="submit" name="Submit" value="OK" id="ok-button" /> -->
</div>
</div>
</form>
......
NewJob=New {0}
JobName={0} name
ItemName.help=Required field
ItemName.validation.required=Please, introduce a valid item name
ItemName.validation.required=This field can not be empty. Please, enter a valid name and press OK button.
ItemName.validation.invalidFormat=Invalid item name
ItemType.validation.required=Please, select an item type
CopyFrom.validation.required=Please, introduce a valid item name
CopyOption.description=if you want to create a new item from other existing, you can use this option
CopyExisting=Copy existing {0}
......@@ -35,7 +35,11 @@ $.when(getItems()).done(function(data){
}
function getItemTypeSelected() {
return $('input[type="radio"][name="mode"]:checked', '#createItem').val();
var item = $('input[type="radio"][name="mode"]:checked', '#createItem').val();
if (item === "copy") {
return undefined;
}
return item;
}
function getItemCopyFromSelected() {
......@@ -77,7 +81,7 @@ $.when(getItems()).done(function(data){
function drawCategory(category) {
var $category = $('<div/>').addClass('category').attr('id', 'j-add-item-type-' + cleanClassName(category.id));
var $items = $('<ul/>').addClass('j-item-options');
var $items = $('<ul"/>').addClass('j-item-options');
var $catHeader = $('<div class="header" />');
var title = '<h2>' + category.name + '</h2>';
var description = '<p>' + category.description + '</p>';
......@@ -110,7 +114,7 @@ $.when(getItems()).done(function(data){
$('input[type="text"][name="from"]', '#createItem').val('');
cleanValidationMessages('.add-item-copy');
if (!isItemNameValid()) {
activateValidationMessage('#itemname-validation-required', '.add-item-name');
activateValidationMessage('#itemname-required', '.add-item-name');
$('input[name="name"][type="text"]', '#createItem').focus();
}
}
......@@ -165,24 +169,22 @@ $.when(getItems()).done(function(data){
});
$('input[name="from"]', '#createItem').blur(function() {
$('#createItem').find('input[type="radio"][value="copy"]').prop('checked', false);
if (getCopyFromValue() === '') {
$('#createItem').find('input[type="radio"][value="copy"]').prop('checked', false);
}
});
// Client-side validation
$("#createItem").submit(function(event) {
if (!isItemNameValid()) {
activateValidationMessage('#itemname-validation-required', '.add-item-name');
activateValidationMessage('#itemname-required', '.add-item-name');
$('input[name="name"][type="text"]', '#createItem').focus();
event.preventDefault();
} else {
if (getItemTypeSelected() === undefined && getItemCopyFromSelected() === undefined) {
activateValidationMessage('#itemtype-validation-required', '.add-item-name');
activateValidationMessage('#itemtype-required', '.add-item-name');
$('input[name="name"][type="text"]', '#createItem').focus();
event.preventDefault();
} else if (getItemCopyFromSelected() && getCopyFromValue() === '') {
activateValidationMessage('#copyfrom-validation-required', '.add-item-copy');
$('input[name="from"][type="text"]', '#createItem').focus();
event.preventDefault();
}
}
});
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册