Javascript 从禁用链接开始

Javascript 从禁用链接开始,javascript,jquery,html,hyperlink,Javascript,Jquery,Html,Hyperlink,我有一个带有链接的选择菜单,一旦客户选择了他/她想要的选项,就可以重定向客户。我的问题是:如何从javascript禁用链接开始,强制客户选择其中一个选项? 下面我粘贴了我拥有的代码: <select name="dept" class="select_type" id="PT_Certificate_options"> <option value="#">Select Study Option</option> <option valu

我有一个带有链接的选择菜单,一旦客户选择了他/她想要的选项,就可以重定向客户。我的问题是:如何从javascript禁用链接开始,强制客户选择其中一个选项? 下面我粘贴了我拥有的代码:

<select name="dept" class="select_type" id="PT_Certificate_options">
    <option value="#">Select Study Option</option>
    <option value="mydomain.com/option1">Distance</option>
    <option value="mydomain.com/option2">Part Time</option>
    <option value="mydomain.com/option3">Full Time</option>
</select>
<a id="certificate_enrol_link" href="#" class="orange_btn">ENROL NOW</a>

<script type="text/javascript">
    $("#PT_Certificate_options").change(function () {
        console.log(this.value);
        $("#certificate_enrol_link").attr('href', this.value);
    });
</script>

选择学习选项
距离
兼任
全场比赛结束时间
$(“#PT#u证书_选项”)。更改(函数(){
console.log(this.value);
$(“#证书_注册_链接”).attr('href',this.value);
});

谢谢您的时间。

只需从无href属性开始:

<a id="certificate_enrol_link" class="orange_btn">ENROL NOW</a>
立即注册

不使用href属性启动,或者,如果要以编程方式删除该属性,请使用:

$("#certificate_enrol_link").removeAttr("href")

另一种办法可以是:

$('#certificate_enrol_link').click(function(event) {
  if ('#' == $(this).attr('href')) {
    alert("Please select an option!");
    return false;
  }
});

首先,在将href附加到这些
a
时,您必须使用完整的URL,否则您的URL将无法工作。 其次,由于我注意到您的ENROL NOW
a
有一个
class=“orange_btn”,
我假设您希望它是一个提交按钮,而不是一个文本链接。禁用按钮要比禁用文本链接容易得多,所以我为您将其更改为按钮

下面是最后一个工作示例(假设您加载了jQuery,我想您已经加载了jQuery):

$(“#PT#u证书_选项”)。更改(函数(){
console.log(this.value);
如果(this.value!=“#”){
$(“证书注册链接”).prop('disabled',false)
}否则{
$(“证书注册链接”).prop('disabled',true)
}
});
$(“#证书(注册)链接”)。单击(函数(){
window.location.href=$(“#PT_证书_选项”).val();
})

选择学习选项
距离
兼任
全场比赛结束时间
现在注册
试试这个

我使用了
preventDefault()
来禁用链接

$('.link_dis').on('click',function(e){
        e.preventDefault();
})

  <a id="certificate_enrol_link" class="link_dis"href="#" class="orange_btn">ENROL NOW</a
$('.link_dis')。打开('click',函数(e){
e、 预防默认值();
})

现在报名这是最好的答案。奥卡姆剃刀,最简单的答案往往是正确的。对于原始的人谁问你甚至可以香料它与一些CSS,以明确表明链接是禁用的。并在添加href后删除该类。我不敢相信有多少答案在使用JavaScript。AtheistP3ace,这个答案仍然需要附加href的JavaScript,所以我不太确定“我不相信有多少答案在使用JavaScript”是什么意思。。。他仍然需要javascript来重新启用链接!此外,看看他使用class=“orange\u btn”的事实,这告诉我他可能会将链接格式化为一个按钮。那么为什么不使用一个真正的按钮呢?您不需要使用javascript来禁用按钮(只需添加“disabled”属性),只需一行javascript即可轻松启用。如果没有css,它甚至会看起来很棒!我认为最好有href用于搜索引擎优化和正确的语法目的。@ValentinPetkov an buttons没有hrefs谢谢你,穆萨,我自己正要尝试用灰色做“a”,但我还不知道怎么做:)我已经更新了示例,以避免“buttons没有hrefs”的问题。谢谢你指出这一点。现在这是一个完全有效的例子。请记住,重定向到example.com可能在此代码段预览中不起作用,但如果您将其复制粘贴到您的网站,它将起作用!你真的应该为这类事情使用一个按钮+1完美+1你可以使用short IF$(“#certificate_enrol_link”).prop('disabled',(this.value!=“#”)?0:1);prop vs attr jQuery ver