我有以下输入字段,其中包含多个函数的内联事件处理程序。我希望如果reqField()
返回false
剩余的功能将被取消,但这并没有发生。
所发生的一切reqField()
都是提前终止,如果输入字段有默认操作,它将被阻止。反正有没有达到我想要的结果(终止剩余的功能)。
顺便说一句,我不能只将它们从 onclick 中删除,因为它们需要在下一个事件returning false
中保持原位。onblur
function getnDisplayTextInputBox(id) {
var s = document.getElementById(id);
s.setAttribute('onclick', '');
var obj = getDataAttribs2Obj(id);
var str = getParamStrFromDataObj(obj);
s.innerHTML = "<input type=\"text\" data-param=\""+obj['param']+"\" id=\"edit\" value=\""+htmlentities(s.innerHTML)+"\" onblur=\"return reqField(this); postData('"+obj['sendtourl']+"', '"+str+"&spanid="+id+"&newVal='+this.value, 'replaceTextTextInputFieldWithValue(resp);', '','');\">";
document.getElementById('edit').focus();
}
当用户单击原始文本时,上述函数将 a 中的文本替换为span
填充了相同文本的输入字段。然后他们可以编辑发送到服务器并保存的文本onbur
。
一些跨度有一个属性data-param='required'
,如果是这样,reqField()
则要求该字段不为空,return false
如果是则将要求该字段(在使用警报框提醒用户问题之后)。显然,我不希望下一个内联函数触发,将空字段发送到服务器进行保存,或者之后的一个,它将输入框换成span
.