如何在Laravel中通过URL对href标签执行javascript函数
How to execute javascript function on href tags through URL in Laravel
实际场景:
- 用户点击按钮"Jana Laporan",(如果输入字段为空)
- javascript函数执行,但返回到另一个VIEW
假设是,一旦用户在输入字段为空的情况下点击按钮,javascript函数将保持不变的VIEW。
这是我的Javascript函数:
function validateInput() {
var strStartDate = document.ReportSearchForm.StartDate.value;
var strEndDate = document.ReportSearchForm.EndDate.value;
var strDptId = document.ReportSearchForm.searchDptId.value;
if (strStartDate == "" && strEndDate == "") {
alert("Tarikh (Mula) dan Tarikh (Akhir) dikehendaki.");
document.ReportSearchForm.strStartDate.focus();
return false;
}
else if ((strStartDate != "" && strEndDate == "") || (strStartDate == "" && strEndDate != "")) {
alert("Tarikh (Mula) atau Tarikh (Akhir) dikehendaki.");
return false;
}
else if (strDptId == "") {
alert("Jawatankuasa dikehendaki.");
return false;
} }
这是我的按钮形式:
<a id="transboxShow" class="fancybox" data-fancybox-type="iframe" href="{{ URL::to('laporanjumlahmesyuaratresult/sujk?t=2')}}">{{ Form::button('Jana Laporan', array('name'=>'btnAdd', 'onclick'=>'return validateInput(); return false;','class'=>'NormalTextCenter', 'data-fancybox-type'=>'iframe') ) }}</a>
我如何通过fancybox弹出窗口执行javascript函数,在不进入下一个url/VIEW的情况下验证我在同一个VIEW中的输入字段?
您的按钮位于<a>
标记内,这就是为什么当您单击按钮时,它会转到您在href属性上提供的url。您可以移动对超链接的onclick属性的验证。
<a id="transboxShow" class="fancybox" data-fancybox-type="iframe" href="{{ URL::to('laporanjumlahmesyuaratresult/sujk?t=2')}}" onclick="return validateInput();" >
{{ Form::button('Jana Laporan', array('name'=>'btnAdd', 'class'=>'NormalTextCenter', 'data-fancybox-type'=>'iframe') ) }}
</a>
或者你可以去掉按钮。我不知道你为什么在<a>
标签里面有一个按钮。
您可以在锚标记的onclick属性上调用javascript函数,如下所示。
<a id="transboxShow" onclick="return validateInput()" class="fancybox" data-fancybox-type="iframe" href="{{ URL::to('laporanjumlahmesyuaratresult/sujk?t=2')}}">{{ Form::button('Jana Laporan', array('name'=>'btnAdd', 'onclick'=>'return validateInput(); return false;','class'=>'NormalTextCenter', 'data-fancybox-type'=>'iframe') ) }}</a>
这样,当你点击锚标记(或其中的按钮)时,它将首先执行你的"validateInput"函数,如果该函数返回false,它将不会进行正常的链接操作,否则它将转到你指定的链接。
另一种方法可以阻止默认链接操作,然后在"validateInput"函数中更改代码,以重定向到url(锚标记当前指向的位置),如果它验证为true。
禁用锚点标签:
$("#transboxShow").off('click').on('click', function(e) {
e.preventDefault();
)}
你改变后的功能会是这样的:
function validateInput(newLocation) {
var strStartDate = document.ReportSearchForm.StartDate.value;
var strEndDate = document.ReportSearchForm.EndDate.value;
var strDptId = document.ReportSearchForm.searchDptId.value;
if (strStartDate == "" && strEndDate == "") {
alert("Tarikh (Mula) dan Tarikh (Akhir) dikehendaki.");
document.ReportSearchForm.strStartDate.focus();
return false;
}
else if ((strStartDate != "" && strEndDate == "") || (strStartDate == "" && strEndDate != "")) {
alert("Tarikh (Mula) atau Tarikh (Akhir) dikehendaki.");
return false;
}
else if (strDptId == "") {
alert("Jawatankuasa dikehendaki.");
return false;
}
//if all validation passed, redirect to your desired location
window.location = newLocation;
}
然后将"validateInput"函数更改为使用新url的参数进行调用,如下所示:
<a id="transboxShow" class="fancybox" data-fancybox-type="iframe" href="#">
{{ Form::button('Jana Laporan', array('name'=>'btnAdd', 'onclick'=>'return validateInput(URL::to('laporanjumlahmesyuaratresult/sujk?t=2')); return false;','class'=>'NormalTextCenter', 'data-fancybox-type'=>'iframe') ) }}
</a>
相关文章:
- 名称href标签根据用户文本输入JavaScript
- 如何在单击区域 HREF 标签时创建活动事件(更改 BG 或创建边框)
- href 标签无法正常工作
- 如何将 Javascript 变量值显示到 HTML href 标签
- 如何在导航 jQuery 中的特定 href 标签上给出目标空白
- 动态 href 标签 React in JSX.
- 如何在Laravel中通过URL对href标签执行javascript函数
- 如何将从中继器中获取ID的控件传递给href标签
- jQuery添加文本之间的href标签的td
- 在运行时用你自己的url更改href标签
- 如何从html中的href标签调用JavaScript函数
- 如何在jQuery中分配动态元素id当onMouseOver在一个href标签
- 当value =声明时禁用href标签
- 在动态生成的href标签中使用jQuery Dialog
- 悬停在href标签和jquery图标上
- 使用javascript或JQuery提取和替换href标签
- 如何在href标签中获得选择框值
- 在IE Mobile(windows phone 8)的href标签中无法识别Angularjs变量
- 在href标签中捕获url
- 用jquery从href标签中提取值