提交 896d84e9 编写于 作者: K kohsuke

fixed the OK button enable/disable state control (#849)


git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@5410 71c3de6d-444a-0410-be80-ed276b4c234a
上级 4b831e56
......@@ -6,8 +6,8 @@
<st:include page="sidepanel.jelly" />
<l:main-panel>
<s:form method="post" action="createItem">
<s:entry title="Job name">
<s:textbox id="name" name="name" checkUrl="'${rootURL}/itemExistsCheck?value='+escape(this.value)" />
<s:entry title="Job name">
<s:textbox id="name" name="name" checkUrl="'${rootURL}/itemExistsCheck?value='+escape(this.value)" onchange="updateOk(this.form)" />
<script>$('name').focus();</script>
</s:entry>
......@@ -15,7 +15,7 @@
<j:forEach var="d" items="${jobs}">
<s:block>
<j:set var="id" value="${h.generateId()}"/>
<input type="radio" name="mode" value="${d.displayName}" onchange="$('ok').disabled=false" onclick="$('ok').disabled=false" id="${id}" />
<input type="radio" name="mode" value="${d.displayName}" onchange="updateOk(this.form)" onclick="updateOk(this.form)" id="${id}" />
<st:nbsp/>
<label for="${id}"><b>${d.displayName}</b></label>
</s:block>
......@@ -25,7 +25,7 @@
</j:forEach>
<s:block>
<j:set var="id" value="${h.generateId()}"/>
<input type="radio" name="mode" value="copyJob" onchange="$('ok').disabled=false" onclick="$('ok').disabled=false" id="${id}"/>
<input type="radio" name="mode" value="copyJob" onchange="updateOk(this.form)" onclick="updateOk(this.form)" id="${id}"/>
<st:nbsp/>
<label for="${id}"><b>Copy existing job</b></label>
</s:block>
......@@ -37,7 +37,22 @@
<s:block>
<input type="submit" name="Submit" value="OK" id="ok" disabled="true" style="margin-left:5em" />
</s:block>
</s:form>
</l:main-panel>
</s:form>
<script><![CDATA[
function updateOk(form) {
function state() {
if($('name').value.length==0) return true;
var radio = form.elements['mode'];
for(i=0;i<radio.length;i++)
if(radio[i].checked)
return false;
return true;
}
$('ok').disabled = state()
}
updateOk($('ok').form);ext
]]></script>
</l:main-panel>
</l:layout>
</j:jelly>
......@@ -3,5 +3,5 @@
-->
<j:jelly xmlns:j="jelly:core" xmlns:d="jelly:define">
<input class="setting-input ${h.ifThenElse(attrs.checkUrl!=null,'validated','')}" name="${attrs.name}" id="${attrs.id}"
type="text" value="${attrs.value}" checkUrl="${attrs.checkUrl}" checkMethod="${attrs.checkMethod}"/>
type="text" value="${attrs.value}" checkUrl="${attrs.checkUrl}" checkMethod="${attrs.checkMethod}" onchange="${attrs.onchange}"/>
</j:jelly>
\ No newline at end of file
......@@ -86,7 +86,7 @@ function registerValidator(e) {
FormChecker.delayedCheck(e.targetUrl(), method, e.targetElement);
e.onchange = e.onblur = function() {
var checker = function() {
var target = this.targetElement;
FormChecker.sendRequest(this.targetUrl(), {
method : method,
......@@ -95,6 +95,13 @@ function registerValidator(e) {
}
});
}
var oldOnchange = e.onchange;
if(typeof oldOnchange=="function") {
e.onchange = function() { checker.call(this); oldOnchange.call(this); }
} else
e.onchange = checker;
e.onblur = checker;
e = null; // avoid memory leak
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册